System Design

Distributed transactions in Microservices?

0) First principle Do NOT use XA/2PC across services. It’s slow, fragile, and couples vendors. Prefer eventual consistency with compensations and idempotency. 1) Sagas (the default) What A Saga is...

Distributed transactions in Microservices?

0) First principle Do NOT use XA/2PC across services. It’s slow, fragile, and couples vendors. Prefer eventual consistency with compensations and idempotency. 1) Sagas (the default) What A Saga is...

Microservices Anti‑Patterns

1) Distributed Monolith What: Many “services” but tightly coupled (shared releases, schemas, libraries).Why: Changes ripple across services; no independent deploys.Better: Independent deployability as a gate; per‑service DB; contract tests; semantic...

Microservices Anti‑Patterns

1) Distributed Monolith What: Many “services” but tightly coupled (shared releases, schemas, libraries).Why: Changes ripple across services; no independent deploys.Better: Independent deployability as a gate; per‑service DB; contract tests; semantic...

OpenID & Auth 2.0

1. OAuth 2.0 – Authorization Framework Purpose: Grants a client application limited access to a user’s resources on another service, without giving the client the user’s credentials. What it does:...

OpenID & Auth 2.0

1. OAuth 2.0 – Authorization Framework Purpose: Grants a client application limited access to a user’s resources on another service, without giving the client the user’s credentials. What it does:...

The 15 Factors | Heroku’s Twelve-Factor App

1. Codebase One codebase, multiple deploys A single repository for your application, deployed across different environments. Example: A GitHub repository containing a web app, deployed to staging and production with different...

The 15 Factors | Heroku’s Twelve-Factor App

1. Codebase One codebase, multiple deploys A single repository for your application, deployed across different environments. Example: A GitHub repository containing a web app, deployed to staging and production with different...

Microservices Design Patterns: Essential Archit...

1) Decomposition Design Patterns 1.1 Decompose by Business Capability Definition: Split services around high‑level business capabilities (e.g., Billing, Catalog, Shipping).Problem: Monoliths couple unrelated features; teams step on each other; slow,...

Microservices Design Patterns: Essential Archit...

1) Decomposition Design Patterns 1.1 Decompose by Business Capability Definition: Split services around high‑level business capabilities (e.g., Billing, Catalog, Shipping).Problem: Monoliths couple unrelated features; teams step on each other; slow,...

When one microservice talks to two databases

Legit use cases Polyglot persistence: one DB fits OLTP (e.g., Postgres) and another fits search/analytics (e.g., Elasticsearch). Strangler/migration: old DB + new DB during a phased rewrite. Read/write split across...

When one microservice talks to two databases

Legit use cases Polyglot persistence: one DB fits OLTP (e.g., Postgres) and another fits search/analytics (e.g., Elasticsearch). Strangler/migration: old DB + new DB during a phased rewrite. Read/write split across...