- Database In Microservices
Tools and approaches for database access in microservices, covering reverse proxies, load balancers, MySQL clustering, and data synchronization.
- Top 10 System Design And Microservices Questions
Ten common system design and microservices interview questions with hints on what to clarify and how to structure an answer.
- Grab Tech Talk Takeaways
Notes from a Grab tech talk on building an API gateway, covering technology choices, design, performance, maintenance and safe upgrades.
- Scalable Golang Course Notes
Curriculum outline of Viet Tran's scalable Golang course, covering language features, APIs, databases, async jobs, deployment, gRPC, microservices, and DevOps.
- Java Microservices
Pointer to MicroProfile, an API library that provides tooling for building microservices in Java.
- Designing For Distributed Failure
How to design a multi-service system around failure: timeouts that mean unknown, partial failure, clock skew, replication lag, sagas and compensation, duplicate or out-of-order messages, retry budgets, tracing, and the trade-offs behind each choice.
- Modular Monolith Vs Microservices
When a modular monolith is enough and when splitting into services pays off: boundary enforcement, in-process calls versus network calls, the Orders–Billing example, Spring Modulith and ArchUnit, and a Strangler Fig migration path.
- Strangler Fig
Describes the Strangler Fig pattern for incrementally migrating a monolith to microservices behind a proxy layer, with AWS implementations, benefits, and challenges.
- Backends For Frontends Pattern
Describes creating a separate backend service per client interface so each frontend gets a tailored experience instead of forcing one shared backend to serve conflicting needs.
- Choreography Pattern
Describes decentralizing workflow logic across services that react to each other's events through a message broker, instead of relying on a central orchestrator.
- Gateway Aggregation Pattern
Explains using a gateway to combine multiple client requests into one, cutting chattiness and latency between clients and backend services.
- Saga Pattern
Keep data consistent across microservices with a sequence of local transactions and compensating transactions, using choreography or orchestration instead of two-phase commit.
- Outbox Pattern
Explains how the Outbox Pattern with Change Data Capture (Debezium and Kafka) solves the dual-write problem in microservices, including the outbox table structure, duplicate handling, and eventual consistency.
- Retry And Circuit Breaker
Covers retry with gradual backoff, the Circuit Breaker pattern, distributed transaction techniques such as SAGA, and the Outbox pattern for reliable messaging.
- Software Architecture
A survey of software architecture patterns (Clean, Hexagonal, Microservices, EDA, DDD, CQRS, LMAX, MVC family) and design principles (SOLID, DRY, AOP, Command Bus), with references and examples.