Designing a Ride-Sharing App: Finding Nearby Drivers and Matching
Case study on designing a ride-sharing system: finding nearby drivers with Redis GEO, handling race conditions during matching, maintaining data consistency, and handling peak load.
Design patterns, system design, microservices and the building blocks of large systems.
Case study on designing a ride-sharing system: finding nearby drivers with Redis GEO, handling race conditions during matching, maintaining data consistency, and handling peak load.
A case study on designing real-time leaderboards for millions of players using Redis sorted sets, covering data models, APIs, handling ties, idempotency, and traffic spikes.
Case study on electronic wallet design: double-entry ledger model, idempotent API, deadlock-free locking, outbox with Kafka, and handling traffic spikes.
Use Kafka as an event log for Order: record immutable events, rebuild state through replay, build read models using projections. Plus the limitations to know before applying.
Flash sale system design case study: atomic reservation with Redis Lua, asynchronous order writing via Kafka, database as safety net and stock recovery on expiry.
A case study on designing a food delivery system: requirements, data models, APIs, order state machine, shipper dispatch, transactional outbox with Kafka, and real-time updates.
How to identify hot keys and big keys in Redis using redis-cli, MEMORY USAGE, OBJECT FREQ, and how to handle them by key sharding, UNLINK, local cache, and key replication.
What is consumer lag, how to measure it with CLI, AdminClient and Micrometer, which broker/producer/consumer metrics to track and how to set up reasonable alerts.
Configure acks, enable.idempotence, batch.size and linger.ms for Kafka producer to prevent message loss, avoid duplicates while achieving high throughput.
How to apply cache-aside pattern with Redis in Spring Boot, delete cache after commit, handle race conditions, and test with Testcontainers.
Writing to database and sending to Kafka simultaneously easily loses events. This article guides you through implementing the Outbox pattern with Spring Boot 3 and Kafka to keep both systems consistent.
Case study on payment system design: preventing double-charging with idempotency keys, reconciliation with payment gateways, safe refunds under concurrent disputes, and handling traffic spikes.
Understand how Redis writes data to disk using RDB and AOF, configure each mode, and identify scenarios where data loss still occurs even with persistence enabled.
Use Redis Streams and consumer groups in Spring Boot 3 to process at-least-once events with manual ACK, retry pending messages, and dead-letter streams.
Comparing three popular caching strategies with Redis and Spring Boot 3: implementation, pros and cons, common errors, and when to use each one.
Understand the Redlock algorithm, implement it yourself using Jedis, write tests with Testcontainers, and learn why Martin Kleppmann believes it is not safe.
Set up Saga pattern with orchestration using Spring Boot and Kafka. Book flights, hotels, process payments, and automatically compensate when a step fails.
Use Confluent Schema Registry with Avro and Protobuf in Spring Boot 3 to control Kafka message formats and evolve schemas safely.
Case study on shopping cart and order workflow design: requirements, data models, APIs, overselling prevention, idempotency, outbox pattern and flash sale handling.
Case study designing a car rental system with PostgreSQL to prevent double-bookings, idempotent deposits, cancellations with refunds, and peak-season load handling.