Skip to main content
PCSalt logo
YouTube GitHub

Architecture

(15 posts)

System design and architectural patterns — CQRS, event sourcing, microservice communication. Lessons from building and scaling real backend systems.

All Posts

API Versioning — URL, Header & Content Negotiation Strategies

Compare API versioning strategies — URL path, custom header, and content negotiation. Includes Spring Boot 4 built-in versioning support and decision framework.

architecture api-versioning 4 min read

Designing for Failure — Retry, Timeout, Bulkhead & Fallback Patterns

Build resilient systems with failure patterns — retries with backoff, timeouts, circuit breakers, bulkheads, and fallbacks. Practical examples with Resilience4j.

architecture resilience 3 min read

Caching Strategies — Redis, In-Memory & HTTP Cache Headers

A practical guide to caching — when to cache, where to cache, cache invalidation strategies, Redis patterns, HTTP cache headers, and avoiding stale data.

architecture caching 4 min read

Domain-Driven Design (DDD) — Bounded Contexts in Practice

A practical guide to Domain-Driven Design — bounded contexts, aggregates, value objects, and how to apply DDD without drowning in abstraction.

architecture ddd 4 min read

MVVM vs MVI in Android — Which One and When

A practical comparison of MVVM and MVI architecture patterns in Android — how each works, when to use which, and how to avoid common pitfalls in both.

architecture android 3 min read

Saga Pattern — Managing Distributed Transactions

How to implement the Saga pattern for distributed transactions in microservices — choreography vs orchestration, compensation, and practical implementation with Kafka.

architecture saga-pattern 3 min read

Database Per Service — Patterns for Data Isolation in Microservices

How to implement database-per-service in microservices — data ownership, cross-service queries, eventual consistency, and practical patterns for data isolation.

architecture microservices 5 min read

Microservices vs Monolith — A Practical Decision Framework

A no-hype comparison of microservices and monoliths — when each architecture makes sense, the real tradeoffs, and how to decide for your project.

architecture microservices 5 min read

CQRS with Spring Boot, Kafka & MongoDB — Part 5: Putting It All Together

Docker Compose setup, end-to-end flow walkthrough, integration tests with Testcontainers, and a production readiness checklist for the complete CQRS system.

kotlin spring-boot 7 min read

CQRS with Spring Boot, Kafka & MongoDB — Part 4: The Hard Parts

Eventual consistency, idempotent consumers, schema evolution, the outbox problem — the real-world challenges that make CQRS hard and how to handle them.

kotlin spring-boot 9 min read

CQRS with Spring Boot, Kafka & MongoDB — Part 3: Query Side — Reads at Scale

Building the query service — consuming Kafka events, building read-optimized projections, and serving fast queries from MongoDB.

kotlin spring-boot 6 min read

Event-Driven Architecture — When and Why (Not Just Kafka)

Understand event-driven architecture beyond the buzzwords — events vs commands, messaging patterns, when to use it, and when synchronous calls are better.

architecture event-driven 5 min read

CQRS with Spring Boot, Kafka & MongoDB — Part 2: Command Side — Writes Done Right

Building the command service — accepting orders, validating business rules, persisting to MongoDB, and publishing domain events to Kafka.

kotlin spring-boot 6 min read

Clean Architecture for Android — Without Over-Engineering

A practical guide to Clean Architecture in Android — when to use it, how to structure layers, and how to avoid the over-abstraction trap that kills productivity.

architecture android 4 min read

CQRS with Spring Boot, Kafka & MongoDB — Part 1: What is CQRS and why you need it

Understanding Command Query Responsibility Segregation, when it makes sense, and how Spring Boot, Kafka, and MongoDB fit together in a CQRS architecture.

kotlin spring-boot 5 min read