So far in the exercises we focused on scalability of stateless application layers (e.g. the web server). Handling state in distributed systems is generally a challenging task, especially in large scale systems with high demand on availability.
Do some research on consistency guarantees: ACID and eventual consistency
Further, look at the trade offs between consistency and availability guarantees: CAP theorem and BASE (Basically Available, Soft state, Eventual consistency)
Related Articles:
- Eventually Consistent, Werner Vogels (Amazon.com), 2009
- ACID versus BASE for database transactions, John D. Cook, 2009
- Problems with CAP, and Yahoo’s little known NoSQL system, Daniel Abadi, 2010
- What is ACID? What is eventual consistency?
- What are the three categories of CAP?
- What are examples for CA data store? What are examples for AP? And for CP?
To store state information in Cloud applications, database systems are very popular. If the application has to scale, the database system eventually has to scale and hence distribute as well.
Do some research about distributed database systems, and the features the database systems have to support to be scalable.
Related Articles:
- What is the difference between replication and sharding/partitioning?
- How does replication relate to the CAP theorem?
- How does sharding relate to the CAP theorem?
- How would the perfect Cloud database system look like?