Skip to content
Microservices
- Monolith vs Microservices — when to split, when not to
- Service boundaries — Domain-Driven Design, bounded contexts
- Database per service vs shared database anti-pattern
- Synchronous (REST/gRPC) vs Asynchronous (event-driven) communication
- API Gateway pattern (routing, auth, rate limiting)
- Service-to-service calls — REST, gRPC, GraphQL federation
- Event-driven architecture — pub/sub, message brokers (Kafka, SQS/SNS)
- Choreography vs Orchestration
- Saga pattern (orchestration-based vs choreography-based)
- Outbox pattern — reliable event publishing
- CQRS (Command Query Responsibility Segregation)
- Event Sourcing
- Distributed transactions — why 2PC fails at scale
- Circuit Breaker pattern (Resilience4j, Hystrix legacy)
- Retry with exponential backoff + jitter
- Bulkhead pattern — isolating failure domains
- Timeout strategies
- Idempotency — designing idempotent APIs/consumers
- Rate limiting & throttling
- Client-side vs server-side discovery
- Service mesh (Istio, Linkerd) — what it solves vs API gateway
- Sidecar pattern
- Distributed tracing (OpenTelemetry, Jaeger, X-Ray)
- Centralized logging (correlation IDs across services)
- Metrics & SLO/SLA monitoring
- Health checks — liveness vs readiness probes
- Containerization (Docker) + Orchestration (Kubernetes)
- Blue-Green, Canary, Rolling deployments
- Strangler Fig pattern — migrating monolith to microservices
- Infrastructure as Code for microservices environments
- Zero-trust between services — mTLS
- OAuth2/OIDC in a microservices context
- Secrets management
- API security at the gateway layer
- Backend for Frontend (BFF)
- Strangler Fig (migration strategy)
- Anti-corruption layer
- Sidecar/Ambassador patterns
- Multi-tenancy strategies
- CAP theorem and PACELC in practice
- Consensus algorithms (Raft/Paxos) — where they show up (Kafka, etcd)
- Trade-offs: consistency vs availability in real systems
- “Design a microservices system for X” — case study format