// Topic
Microservices
Definition
Microservices coverage in this archive spans 11 posts from Jan 2016 to Sep 2022 and deals with structural tradeoffs: coupling, failure boundaries, and long-term change cost. The strongest adjacent threads are architecture, go, and monolith. Recurring title motifs include microservices, patterns, probably, and need.
Key claims
- Most pieces recommend choosing the simplest architecture that can be operated confidently.
- Early posts lean on microservices and probably, while newer posts lean on patterns and monolith as constraints shifted.
- This topic repeatedly intersects with architecture, go, and monolith, so design choices here rarely stand alone.
Practical checklist
- Define failure domains and data boundaries before introducing additional services or protocols.
- Start with the newest post to calibrate current constraints, then backtrack to older entries for first principles.
- When boundary questions appear, cross-read architecture and go before committing implementation details.
Failure modes
- Breaking systems into many parts without clear ownership of cross-service behavior.
- Choosing architecture for trend alignment rather than workload constraints.
- Applying guidance from 2016 to 2022 without revisiting assumptions as context changed.
Suggested reading path
- Start here (current state): Testing Microservices Without Losing Your Mind
- Then read (operating middle): Your Monolith Is Probably Fine
- Finish with (foundational context): Why Microservices Aren’t Always the Answer
Related posts
- Testing Microservices Without Losing Your Mind
- Distributed Systems Patterns I Keep Reaching For
- GraphQL Federation: I’m Still Skeptical
- API Gateway Patterns That Actually Work
- gRPC Patterns That Actually Work in Production
- Your Monolith Is Probably Fine
- Istio: Powerful, Painful, and Probably More Than You Need
- Securing Microservices: What Actually Works
References
11 posts
- Testing Microservices Without Losing Your Mind
Microservices fail at the seams. A layered test strategy that keeps feedback fast and catches integration issues before production.
Distributed Systems Patterns I Keep Reaching For
The patterns that actually survive production across failure handling, consistency, messaging, coordination, and scaling.
GraphQL Federation: I'm Still Skeptical
A year after my GraphQL post, federation is the new hotness. I still think most teams don't need it.
API Gateway Patterns That Actually Work
Edge gateways, BFFs, and service mesh ingress -- what I've learned running them at Decloud and at large telecoms.
gRPC Patterns That Actually Work in Production
Hard-won gRPC patterns from building Decloud's service mesh. Proto design, Go implementation, error handling, and the mistakes that cost us weekends.
Your Monolith Is Probably Fine
Most teams shouldn't be migrating to microservices. Here's how to tell if you actually should, and how to do it without wrecking your delivery for eighteen months.
Istio: Powerful, Painful, and Probably More Than You Need
My honest take on evaluating Istio at the fintech startup — what it actually gives you, what it costs you, and why most teams should think twice before adopting it.
Securing Microservices: What Actually Works
You split the monolith. Now every service-to-service call is an attack surface. Here's how I think about identity, authorization, encryption, and secrets management in distributed systems.
Service Mesh: You Probably Don't Need One
I evaluated Istio and Linkerd for our microservices at the fintech startup. My conclusion: most teams are buying complexity they haven't earned yet.
Why We Went Event-Driven (and What Nearly Broke)
Lessons from building event-driven systems at the fintech startup and Dropbyke -- what worked, what broke, and why I'd do it again.
Why Microservices Aren't Always the Answer
Most teams adopt microservices too early and pay for complexity they don't need yet. A well-structured monolith is faster, simpler, and keeps your options open.