Should You Split That Into Microservices? Ask These 5 Questions First
A guide to deciding whether to split a monolith into microservices, featuring five key questions to evaluate before making the transition.
A guide to deciding whether to split a monolith into microservices, featuring five key questions to evaluate before making the transition.
Explains compensating transactions as a key resiliency pattern in distributed systems, using real-world payment reversal examples.
Explores how Domain-Specific Languages (DSLs) guide LLMs to generate reliable, intent-aligned code, using Tickloom as an example.
Explores a subtle failure in event-driven systems where messages are acknowledged but not processed, causing silent data loss.
Explores whether retries and timeouts should be handled by the application or service mesh, balancing infrastructure simplicity with business context.
Explores how retries, circuit breakers, and fallbacks can reduce system resilience if misapplied, using a message queue example.
Analysis of Coinbase's 10-hour outage due to single-AZ dependency and lack of automated failover, highlighting reliability lessons for tech companies.
Analysis of CockroachDB's scalable leader lease protocol for multi-consensus groups, addressing failover and liveness issues.
A monthly roundup of non-trendy software resources, including articles on TUI accessibility, CSS font fallbacks, and a proposal for a universal do-not-track flag.
Explains deterministic routing as a key technique for reducing consistency problems in distributed systems at scale.
Summary of the Antithesis BugBash Conference 2026, covering software verification, distributed systems, formal verification, and test coverage talks.
Review of SysMoBench, a benchmark evaluating AI's ability to write TLA+ formal specs for real-world distributed systems.
Explores idempotency in system design, its patterns, and critical role in reliable distributed systems, generative AI, and AI agents.
Interview with a Fly.io developer discussing her work on Corrosion, a distributed SQLite replication system, and other infrastructure projects.
Explains the difference between high availability and high resiliency in system design, and why both are crucial.
Explains fencing tokens and generation clocks in .NET to prevent stale leaders from writing in distributed systems, ensuring data consistency.
Explains the lease pattern in .NET for distributed systems, using Redis to implement time-limited locks that prevent deadlocks and ensure recovery.
A guide to implementing a lease-based leader election pattern in C#/.NET for distributed systems to prevent accidental multi-leader scenarios.
Explains the Leader and Followers distributed system pattern with a practical .NET implementation to ensure single authority and prevent data corruption.
A technical series translating distributed systems patterns into practical C#/.NET implementations for production software.