A highly scalable, highly performant, highly blazing-fast Twitter clone.
Contains all the setup/deployment files for all our cloud instances.
For deployment related notes, see the Ansible folder.
chirp-api
- API servicechirp-api-nginx
- Load balancer forchirp-api
instanceschirp-cassandra
- Cassandra configurationchirp-elasticsearch
- Elasticsearch configchirp-mongodb
- MongoDB config for Chirpchirp-postfix
- Postfix configurationchirp-ui
- UIchirp-ui-static
- UI that's already built (used for deployment)
Able to handle a load of 1000 concurrent users sending a total 200,000 requests over 10-12 minutes (about 250-300 requests per second). The tail latency (95th percentile) was around 150ms.
Working hardware configuration to achieve the above stats (16 total instances).
- 2 vCPU load balancer
- 2 vCPU Elasticsearch instance
- 4 vCPU Cassandra cluster (2 CPU per node)
- 1 vCPU Postfix, Mail instance
- 6 vCPU MongoDB sharded cluster (3 config servers, 3 shards)
- 6 vCPU API webserver instances (1 sitting in the same instance as Postfix) (1 CPU each instance)
Maximize RAM for each instance (recommended 2 GB per core), but 1 GB/core works too.