CRDTs and Eventual Consistency Anti-Patterns on AWS
Whole-item last-write-wins is how Global Tables lose cart merges. When to use counters, OR-Sets, and conflict-free merges vs when to keep a single Aurora writer.
Blog category
Whole-item last-write-wins is how Global Tables lose cart merges. When to use counters, OR-Sets, and conflict-free merges vs when to keep a single Aurora writer.
Too many "too many connections" pages are fixed by raising max_connections, which trades one outage for OOM on the writer. This guide traces deadlocks, pool sizing, RDS Proxy, and prepared statement caching on Aurora.
Cache-aside without an invalidation story ships stale pricing to 2% of users, and those are the hardest users to debug. This guide layers CloudFront, ElastiCache, and DAX with TTL, event-driven purge, and when write-through beats cache-aside.
Redlock debates matter because ElastiCache is not a consensus system. Consistent hashing for sharding workers and ALB target stickiness, with DynamoDB conditional writes as the simpler alternative.
Exactly-once is a myth end to end, but idempotent consumers plus event stores get you close. CQRS read models on DynamoDB streams, Kinesis, and EventBridge replay semantics.
Protobuf on the wire saves bytes, and GraphQL saves round trips until resolvers N+1 your Aurora cluster. ALB gRPC, AppSync, and consumer-driven contracts with Pact.
C10k is solved until syscall overhead and context switches eat your Graviton cores. epoll, sendfile, and SO_REUSEPORT behaviors on EC2, and why Lambda caps concurrency differently.
A heap that is too small triggers G1 humongous allocations, and one that is too large balloons pause times on Graviton. Corretto on ECS/EKS/Lambda Java, and when ZGC generational beats G1 for API heaps.
Consumer group rebalance storms stall processing longer than broker outages. This guide covers cooperative rebalancing, idempotent producers, and transactional reads on Amazon MSK, and says when SQS FIFO is simpler.
FIFO guarantees shrink throughput, and unbounded queues only move backpressure to your AWS bill. Ordering, flow control, and Amazon MQ dead-letter patterns vs Kinesis resharding.
Packet loss on mobile networks still punishes HTTP/1.1 head-of-line blocking, but HTTP/3 only helps if CloudFront terminates QUIC and your origin connection pools are sized for multiplexed streams. This guide connects Reno, Cubic, BBR, HPACK, and QUIC to ALB and CloudFront decisions.
Local JWT validation is fast until revocation lags bite you. When to introspect at Cognito, use API Gateway JWT authorizers, and add Verified Permissions for fine-grained authz.