Microservices Architecture
Decomposing monoliths, inter-service communication (gRPC, REST, GraphQL), event-driven patterns, and managing distributed transactions.
Articles in this series
gRPC and Protobuf: Building Service-to-Service APIs
gRPC and Protobuf: binary serialization, unary and streaming RPCs, Go implementation, and when to choose gRPC over REST.
REST vs gRPC vs GraphQL: A Production Decision Guide
How a team serving mobile, microservices, and third-party integrations ended up running REST, gRPC, and GraphQL together.
Event-Driven Microservices in Go: Kafka, Sagas, and the Outbox Pattern
Reliable event-driven Go beyond connecting to Kafka: handling partial failures, duplicates, and distributed transactions safely.
Kafka vs RabbitMQ vs NATS vs SQS: Choosing the Right Message Broker
Kafka vs RabbitMQ vs NATS vs SQS: delivery semantics, ordering, throughput, ops complexity, and a decision framework with Go code.
Microservices Architecture: From Monolith to Production-Ready Services
When to decompose a monolith, how to define boundaries, and the patterns that work: API gateways, sagas, and event-driven comms.