Notes from production
AWS System Design Blog
System design essays on Amazon Web Services by A. M. M. Golam Yeazdani (Yeazdani), senior software engineer and solutions architect. Architecture decisions, trade-offs, and patterns for platforms that have to survive traffic, failure, and a cost review.
Event-driven checkout on AWS: EventBridge, SQS, and the dual-write problem
A production pattern for order intake that survives retries, duplicate events, and a payment provider that will call you twice. The architecture is simple. The failure modes are not.
Multi-region active-active APIs: Route 53, Aurora Global, and what actually fails
Active-active is not “deploy the same stack twice.” It is a data-plane decision about latency, split-brain, and which region is allowed to write. Most teams want the slide. Few want the failover drill.
From device to insight: an IoT telemetry pipeline that does not melt S3 or your bill
Field devices are chatty, clocks are wrong, and “just dump it in S3” becomes a 400-million-object lake. This is the pipeline I use when telemetry has to be cheap to ingest and still queryable.
Lambda vs Fargate vs ECS: a decision framework, not a religion
Compute choice is a system-design decision about traffic shape, failure isolation, and who wakes up at night. Here is the framework I use in design reviews instead of “we are a serverless shop.”
Multi-tenant SaaS on AWS: identity, isolation, and noisy neighbors
Tenancy is not a Cognito checkbox. It is a decision about blast radius: what a compromised API key, a runaway query, or a single large customer is allowed to take down.
Observability that pages you for the right reasons
Dashboards are not observability. Observability is whether a stranger on call can answer: is the user broken, which hop, and is it a dependency or us? This is the instrumentation bar I set on AWS systems.