All posts /

#architecture

33 posts

  1. 1 min read X

    #DistributedDilemmas: all 24 days in one place

    In February 2025 I posted one distributed systems dilemma a day on X. I made it to day 24. Here they all are, with the diagrams.

    #architecture#software-engineering

  2. 1 min read X

    Day 24 of #DistributedDilemmas: Distributed sessions are a persistent headache

    Distributed sessions are a persistent headache. Sticky sessions don't scale, but fully distributed sessions add complexity. Consider JWT or externalized…

    #architecture#software-engineering

  3. 1 min read X

    Day 23 of #DistributedDilemmas: Distributed caching layers often become consistency nightmares

    Distributed caching layers often become consistency nightmares. As cache invalidation schemes attempt to maintain coherence, real-world implementations…

    #architecture#software-engineering

  4. 1 min read X

    Day 22 of #DistributedDilemmas: Distributed background jobs need careful orchestration

    Distributed background jobs need careful orchestration. While stateless architectures simplify scaling, they risk duplicate processing like Slack alerts…

    #architecture#software-engineering

  5. 1 min read X

    Day 21 of #DistributedDilemmas: Event sourcing isn't a silver bullet for distribution

    Event sourcing isn't a silver bullet for distribution. Replay and snapshots become bottlenecks at scale. Design for efficient event storage and retrieval…

    #architecture#software-engineering

  6. 1 min read X

    Day 20 of #DistributedDilemmas: Distributed rate limiting is harder than it looks

    Distributed rate limiting is harder than it looks. Local rate limits don't prevent global abuse. Global protection requires coordination mechanisms like…

    #architecture#software-engineering

  7. 1 min read X

    Day 19 of #DistributedDilemmas: Database migrations in distributed systems require meticulous planning due to their inherent complexity

    Database migrations in distributed systems require meticulous planning due to their inherent complexity. Schema changes become distributed coordination…

    #architecture#software-engineering

  8. 1 min read X

    Day 18 of #DistributedDilemmas: Microservice authentication is a distributed minefield

    Microservice authentication is a distributed minefield. While JWTs excel at decentralized authentication, they introduce authorization complexity due to…

    #architecture#software-engineering

  9. 1 min read X

    Day 17 of #DistributedDilemmas: Distributed cron jobs are a coordination nightmare

    Distributed cron jobs are a coordination nightmare. Time drift and job duplication plague naive implementations. Consider distributed schedulers or…

    #architecture#software-engineering

  10. 1 min read X

    Day 16 of #DistributedDilemmas: Serverless doesn't mean worry-free

    Serverless doesn't mean worry-free. Cold starts and hidden state create new classes of distributed problems. While offering auto-scaling and cost…

    #architecture#software-engineering

  11. 1 min read X

    Day 15 of #DistributedDilemmas: Distributed logging creates more noise than signal

    Distributed logging creates more noise than signal. Modern distributed systems face two critical logging challenges: 1. Data overload from scattered logs…

    #architecture#software-engineering

  12. 1 min read X

    Day 14 of #DistributedDilemmas: Service discovery often becomes a SPOT (single point of failure)

    Service discovery often becomes a SPOT (single point of failure). Your registry being unavailable shouldn't prevent finding the registry. Design for…

    #architecture#software-engineering

  13. 1 min read X

    Day 13 of #DistributedDilemmas: Configuration sprawl is the silent killer of distributed systems

    Configuration sprawl is the silent killer of distributed systems. Environment variables become unmanageable at scale. Treat config as code, not as an…

    #architecture#software-engineering

  14. 1 min read X

    Day 12 of #DistributedDilemmas: API versioning perpetuates distributed mistakes

    API versioning perpetuates distributed mistakes. v2 endpoints often carry v1's technical debt. Evolve APIs additively to avoid version hell.

    #architecture#software-engineering

  15. 1 min read X

    Day 11 of #DistributedDilemmas: Queue-based architectures hide scaling issues

    Queue-based architectures hide scaling issues. Kafka topics with long retention become both a blessing and a curse. Backpressure beats unbounded queues!…

    #architecture#software-engineering

  16. 1 min read X

    Day 10 of #DistributedDilemmas: Observability becomes obscurity at scale

    Observability becomes obscurity at scale. More metrics often mean less visibility. Focus on the critical few signals that truly indicate system health!…

    #architecture#software-engineering

  17. 1 min read X

    Day 9 of #DistributedDilemmas: Distributed transactions are a myth at scale

    Distributed transactions are a myth at scale. Two-phase commit falls apart under network partitions. Design for compensation, not for distributed…

    #architecture#software-engineering

  18. 1 min read X

    Day 8 of #DistributedDilemmas: Eventual consistency is consistently misunderstood

    Eventual consistency is consistently misunderstood. CRDTs work better in whitepapers than in production. Real-world systems need a spectrum of consistency…

    #architecture#software-engineering

  19. 1 min read X

    Day 7 of #DistributedDilemmas: Network partitions heal dangerously

    Network partitions heal dangerously. Merging divergent states introduces subtle data corruption. CAP theorem isn't a choice, it's a law of nature in…

    #architecture#software-engineering

  20. 1 min read X

    Day 6 of #DistributedDilemmas: Leader election creates false security

    Leader election creates false security. Raft/Paxos implementations often have higher MTTR than the failures they aim to solve. Simplicity frequently beats…

    #architecture#software-engineering

  21. 1 min read X

    Day 5 of #DistributedDilemmas: Sharding decisions made today become tomorrow's scaling bottlenecks

    Sharding decisions made today become tomorrow's scaling bottlenecks. NoSQL's partitioning promises often cost more than vertical scaling. Distribution ≠…

    #architecture#software-engineering

  22. 1 min read X

    Day 4 of #DistributedDilemmas: Idempotency is a lie we tell ourselves

    Idempotency is a lie we tell ourselves. Nested partial failures expose retry logic flaws. True exactly-once delivery remains elusive in distributed…

    #architecture#software-engineering

  23. 1 min read X

    Day 3 of #DistributedDilemmas: Caching accelerates inconsistency

    Caching accelerates inconsistency. Cache invalidation storms often outweigh hit rates. The fastest cache is sometimes no cache at all. Exhibit A: DoorDash…

    #architecture#software-engineering

  24. 1 min read Medium

    🚀 Launching today: 28 Days of #DistributedDilemmas

    Follow me on Twitter/X this February for one battle-tested insight a day on the hidden complexities behind outages, tech debt and architectural nightmares.

    #architecture#software-engineering

  25. 1 min read X

    Day 2 of #DistributedDilemmas: Microservices don't eliminate complexity, they redistribute it

    Microservices don't eliminate complexity, they redistribute it. Your monolith's function calls become network calls. Pick which failures you want to debug…

    #architecture#software-engineering

  26. 1 min read X

    Day 1 of #DistributedDilemmas: Consistency guarantees become availability nightmares

    Consistency guarantees become availability nightmares. Every distributed lock is a future bottleneck. Systems that embrace controlled inconsistency often…

    #architecture#software-engineering

  27. 8 min read X

    Cell-based architecture, explained: the public version of my Innovation Day talk

    My Innovation Day deck was internal, so here's the public version: what a cell is, scaling up and across, blast radius, and what cells cost you.

    #architecture#software-engineering

  28. 11 min read X

    The Redis Paradox: my DelhiFOSS 2.0 talk at IIT Delhi, written up

    The written version of my DelhiFOSS 2.0 talk on Redis beyond caching: a short history of caches, live driver matching with GEO commands, and Pub/Sub.

    #architecture#software-engineering#python

  29. 6 min read Obsidian

    Speccing a Shopify app for a friend: Etsy-to-Shopify inventory sync

    A friend needed a Shopify app that keeps stock in sync with Etsy. Before any code, I wrote him a spec to hand to a developer: scope, diagrams and a 70-hour initial estimate.

    #software-engineering#architecture#startups

  30. 4 min read LinkedIn

    Our Journey with Multi-region Cloud Architecture and Data Residency

    How Atlassian built its multi-region cloud architecture for data residency, covering region creation, service hydration, tenant migration and self-serve moves.

    #architecture#software-engineering

  31. 9 min read LinkedIn

    Elevating Trust: Atlassian's Journey to HIPAA Eligibility Expansion!

    How Atlassian expanded HIPAA eligibility by replacing a manual BAA process with a self-serve flow and a new service integrating IronClad with Admin Hub.

    #security-privacy#software-engineering#architecture

  32. 9 min read Obsidian

    Two system design problems from my 2022 interviews, worked with real numbers

    A photo pipeline for a fleet of 360-degree camera cars and an A/B split-testing service: requirements, capacity math, data model and the parts I'd tighten.

    #architecture#software-engineering#career

  33. 16 min read Obsidian

    Interview prep, senior edition: a system design checklist, one backtracking template and what loops grade on

    My 2022 prep notes for senior and staff interviews: a system design checklist, one Python DFS for seven backtracking problems, rubrics and a STAR story bank.

    #career#software-engineering#architecture