This course includes lessons on the 5 components of highly scalable web applications. From caching and queueing to minimizing storage locks, handling asynchrony, and building redundancy,
Scalability is the thing that separates good web applications from excellent ones. If you’re serious about building apps that don’t crumble under load, this is for you.
📝 Learning checks included
Selected Diagrams
Each section covers practical examples.
The next time a user hits the server, the data is fetched from the cache, a fact known as a cache hit, because it is there. This improves the application's performance because there is no call to the database.
The staff member updated the database records (6) that have a corresponding cache key stored in the distributed cache. Once data has changed in the database (8), we want to prevent fetching data from the cache thus we invalidate the cache key (9).
Selected Diagrams
Each section covers practical examples.
Used when the write database is a relational PostgreSQL, and the read database is a nosql AWS DynamoDB. Read & Write models are different in schema and/or technology.
Splitting the table horizontally and storing each part of the table in a separate database section or shard.
Selected Diagrams
Each section covers practical examples.
Decouple the request response model and send a message to a queue. The sender is then free to attend other requests. The receiving part is also free to read the message at its own pace.
The queue status can be monitored and if too many messages are waiting in the queue, we can spin additional processing components to handle them.
Selected Diagrams
Each section covers practical examples.
The initial request thread #1 is forwarded to the component together with a callback address. When the result is ready, the calling thread picks up the result. During the wait, thread #1 is ready to attend another request.
Increasing loads put more strain on our application and ultimately the hardware fails. Redundant architecture shields the application from that failure and keeps it running.