Onkar Sawarna

Writing

Notes on systems, networking, and how production actually behaves.

Observability, distributed systems, and the patterns behind the problems, written down while the details are still sharp.

  1. IPv6 went first

    The shop feels slow. The API is fast. The phone tried IPv6, got no reply, then used IPv4.

  2. How livestream and video rendering work

    A Samay Raina episode, a drag on the bar, a drop in quality, then a live feed that never writes a last line.

  3. Redis can hold a key. MySQL holds the seat.

    Two fans tap Book on seat 12A for the IPL final. Lock the row, check a version, or take a key in Redis. The seat row is still the truth.

  4. The API should see MySQL, not the topology

    A proxy sits in front of MySQL and answers like MySQL. The festival sale grew more API boxes, then the shop split into two services, without teaching each one the write server and the read server.

  5. Request hedging is a second GET, not a bigger pool

    The festival sale, a phone that floods the homepage, a pool that reuses TCP, an empty Redis key, and a second GET that sits on the same pool.

  6. SNS-SQS and Kafka, are they the same?

    Support could find the sale order. The dashboard said zero orders today. Both jobs were reading the same checkout, and one queue quietly decided only one of them would get it.

  7. I thought Kafka kept the order I published

    One phone checkout in the festival sale, three lanes, and two jobs reading the same line. Order lives on a partition, not on the topic.

  8. Binary search is a predicate, not a sorted array

    A problem about bananas and a deadline had no sorted array anywhere in it, so I wrote a loop. The sorted thing was the answers, and I had not thought to look there.

  9. I thought a box could only hold 64k connections

    A cricket-final chat is supposed to hold millions of sockets. A load test from one laptop stops near 64,000. That is a source-port limit, not a law of TCP.

  10. I thought logs were observability

    A service kept restarting and I had every log line it ever wrote. I still had to SSH to a box to find out why. That is the gap between storing output and being able to see a system.

  11. Why I'm starting to write this down

    Four years in one codebase, a move to a new team, and a question I could not answer about a thing I had already fixed twice.