As a software developer, globalization gives you the opportunity to have your solution running all over the world. This is fantastic, but you, as a software architect, need to design a solution that provides that possibility. Scalability is the possibility for an application to increase its processing power as soon as it is necessary, due to the number of resources that are being consumed.
1. Deploy dependency services/server
- Search Engine
2. Deploy dependency features
- Back end
- Front end
- Micro services.
- Read/Write Model
3. Horizontal Scale
Tech stack: Micro-service, Load Balancer, Reserve Proxy, Nginx, HAProxy
4. Scale For global locations
- Single Datacenter and Multi CDNs and Dedicated Location Cached.
- Multi DataCenters
Tech stack: GeoDNS, EdgeCache
5. Other methodology
– Event Driven Design (Message Bus): SAGA pattern, Reliability communication, Circuit breaker
– Parallel programming, Big Data Hadoop, ETL.
– Asynchronous Programming
– Code Optimization: Memory leak, Dispose pattern ….
– Index, Denormalized data, Database Sharding, Hot-Cold Loading.