Concurrency: From Race Conditions to Distributed Locks
Suppose we have an ecommerce app with an endpoint to buy a product:
Notes on backend engineering, distributed systems, and the tools I use.
Also on MediumSuppose we have an ecommerce app with an endpoint to buy a product:
Docker allows us to package an application along with the things it needs to run, instead of manually installing everything on every machine, we can define the environment once, then someone else can run the same environment on their machine.
Redis is one of the most popular data stores used for caching. But Redis is not just a cache. It is an in-memory data structure store that can be used for caching, sessions, queues, counters, leaderboards, rate limiting and many other use cases.
Apache Kafka is a message queue widely used to scale backend systems. In a message queue a producer puts messages in a queue and a consumer pops out those messages and performs operations on it.