System design exercises by Arpit Bhayani
-
Updated
Dec 12, 2024 - Go
System design exercises by Arpit Bhayani
Pessimistic row-level locking and distributed advisory locks for EF Core — ForUpdate() / ForShare()
Case Study - Sample Book Delivery App (Spring Boot, Spring Security , Mysql, JUnit, Integration Test, Docker, Test Container, AOP, CI/CD, Prometheus, Grafana, Github Actions)
A basic hotel reservation system with 2PC using pessimistic and optimistic locks in Go
distributed and local lock provider
A high-performance Payment Gateway API built with Spring Boot 3 to solve concurrency race conditions and guarantee idempotency using Redis and PostgreSQL Pessimistic Locking.
In this repo I would like to show 4 strategies of concurrency control for writing data using Python SQLAlchemy ORM and PostgresSQL (however this examples could be easily transformed to plain SQL).
A basic e-commerce application is built using Go/Gin and follows micro-service architecture
Examples of applying pessimistic and optimistic concurrency control with AWS DynamoDB.
A robust Train Seat Reservation API built with .NET. Demonstrates Clean Architecture, DDD, CQRS, and pessimistic concurrency control using MS SQL Server and Redis.
A high-reliability double-entry financial ledger microservice built with Java 25 & Spring Boot 4. Features database-level pessimistic write locking (SELECT ... FOR UPDATE), payment-grade HTTP idempotency key replay, Flyway migrations, OAuth2 JWT auth, and structured ECS logging.
A Spring Boot and React banking architecture implementing a double-entry ledger, idempotent UPI transaction processing, and deterministic pessimistic locking.
A practical microservices project demonstrating the Saga Pattern for distributed money transfers using Spring Boot, Apache Kafka, PostgreSQL, Docker Compose, Transactional Outbox, Idempotency, and Pessimistic Locking. The project shows how a transfer can remain consistent across multiple services without relying on one global database transaction.
Banking Application APIs | RESTful Banking APIs built with Java & Spring Boot, using JPA, JDBC, and MySQL for persistence. Implemented pessimistic locking, DTOs with Java records, and global exception handling. Tested via Postman.
A Spring boot application, showcasing different locks that can be implemented in a Ticketmaster clone.
Task
Spring Boot and PostgreSQL transaction backend for safe concurrent money transfers, verified with an automated, CI-enforced test.
A BookMyShow-like ticket booking system with seat hold mechanism, and pessimistic locking to prevent double bookings.
Concurrency Control Locking manages concurrent transactions using pessimistic locking, which locks records to prevent conflicts, and skip locking, which skips locked records to improve processing efficiency. These mechanisms ensure data consistency while optimizing performance in high-concurrency scenarios.
인기 공연 오픈 상황의 좌석 선점, 예약 만료, 결제 확정 정합성과 조회 성능을 다루는 Spring Boot 기반 티켓 예매 백엔드
To associate your repository with the pessimistic-locking topic, visit your repo's landing page and select "manage topics."