Writing

Writing

Every Tool You List Taxes Every Call · by Anusha Mukka

Connect an MCP server and the agent pays for every tool it advertises, on every turn, whether it calls any of them or not. On the tool list as rent: a measured 1,408 tokens per turn for 15 tools against 533 trimmed and 422 deferred, the published server medians, and budgeting the list in tokens instead of tool count.

Pick Two at Random, Keep the Quieter One · by Anusha Mukka

Your fleet average looks calm while one server carries a third more than it should. On sampling two servers and keeping the quieter one: a maximum of 102 against 132 at an average of 100, why more choices buy almost nothing, and why a full scan herds under concurrency.

A Bloom Filter Lies in One Direction Only · by Anusha Mukka

Ten thousand keys fit in ten kilobytes, and the structure sometimes says yes when the answer is no. It never says no when the answer is yes. On the sizing formula, the optimal number of hash functions, measured error rates, silent overfill, and why you cannot delete from a plain filter.

Ship Hashes, Not Rows: Merkle Trees Find the Replica That Drifted · by Anusha Mukka

Two replicas diverged over a weekend and nobody can list the records that moved. On anti-entropy with Merkle trees: bucket hashes, a walk that finds seven bad records in seventeen comparisons, and repair that ships the records that changed instead of the dataset.

Keeping Both Versions Is Not a Merge · by Anusha Mukka

Two replicas increment the same counter during a partition and the obvious merge loses one of them. On conflict-free replicated data types: per-replica counter slots, add-wins sets where you can only remove what you have seen, convergence in any merge order, and the invariants no CRDT can enforce.

Your Timestamps Cannot Order Your Writes · by Anusha Mukka

Two replicas can disagree about which write came last, and both can be telling the truth about their own clocks. On Lamport’s happened-before relation, vector clocks that return before, after, or concurrent, and keeping both versions instead of losing one quietly.

Your Failure Detector Cannot Tell Dead From Slow · by Anusha Mukka

Silence is the only signal a heartbeat gives you, and a crashed node and a paused node are silent in exactly the same way. On fixed timeouts, the phi accrual detector in Cassandra and Akka, and choosing a threshold from the cost of being wrong in each direction.

Your Commit Is a Promise About a Log, Not About Your Tables · by Anusha Mukka

Postgres can lose every changed data page in a crash and still keep its promise to you. It cannot lose the log. On write-ahead logging: log before data, log before acknowledgment, and the two rules under every durability promise.

You Cannot Update a Database and a Queue in One Breath · by Anusha Mukka

Your order row committed. Your event never left the building. On the dual-write problem and the transactional outbox: write the event in the same transaction as the state, let a relay publish at least once, and pair it with a consumer inbox so duplicates cannot apply twice.

Your Timeout Is Not a Deadline · by Anusha Mukka

Your client gave up at two seconds. Your database kept working for nine. On timeouts versus deadlines: one budget created at the edge, carried with the request, checked before work starts, and used to refuse work that cannot finish in time.

Adding One Node Should Not Move Ninety Percent of Your Keys · by Anusha Mukka

Adding one cache node out of ten should not send 90 percent of your keys to new owners. On hash modulo as a reshuffle button, and consistent hashing: the ring, virtual nodes, and bounded load that move only the keys next door.

Your p99 Is a Product Decision: Hedged Requests and the Long Tail · by Anusha Mukka

Your p50 is 40ms and your p99 is 11 seconds, and both are true. On the fan-out arithmetic that makes the tail the median experience, and hedged requests: the deliberately impatient client policy that trades one extra request for a forty-fold cut in tail latency.

Your Election Crowned Two Kings · by Anusha Mukka

Your leader election worked and crowned two leaders anyway. On zombie leaders, the split-brain window every system has, and fencing tokens: the storage-side integer that rejects a deposed leader’s writes without it ever learning it was deposed.

Your Prompt Filter Passed and the Attack Still Ran · by Anusha Mukka

Salt Labs hid a prompt inside an email, encoded it as JSFuck, and the Manus agent decoded it and ran the code server-side. On why the prompt filter flagged the attack and lost anyway, and the deny-by-default tool gate that is the real boundary.

Your Prompt Template Is a Code Execution Surface · by Anusha Mukka

GitLab’s CVE-2026-90970 let an authenticated user with basic privileges escape the AI Gateway’s prompt template sandbox and run arbitrary commands. On the template boundary nobody audits, why sandboxes fail, and the afternoon-sized hardening pass for your own stack.

Two-Phase Commit Is a Promise No One Can Keep · by Anusha Mukka

When the coordinator dies mid-commit, the participants hold their locks forever. On the blocking window every explainer mentions and none of them replace, why no protocol variant closes it, and the saga pattern that does: sequential local transactions with compensating actions, a durable journal, and a runnable Python orchestrator.

Stop Trying to Invalidate Your Cache. Budget the Staleness Instead. · by Anusha Mukka

Cache invalidation cannot be perfect in a distributed system, so stop chasing it. On the delete-versus-in-flight-read race every explainer skips, and four mechanisms that honor an explicit staleness budget: TTLs with jitter, versioned keys, request coalescing, and stale-while-revalidate.

Your Servers Disagree About What Time It Is · by Anusha Mukka

Clock skew is the quiet bug behind sessions that expire early, charges that appear twice, and certificates valid nowhere. On NTP’s real guarantees, TrueTime’s commit-wait, fencing tokens, and the afternoon-sized monitoring setup that catches drift before it pages you.

Backpressure: The Load-Shedding You Skip Until the Outage · by Anusha Mukka

Queues do not absorb load. They schedule the outage for later, with interest. On bounded queues, 503 with Retry-After, adaptive concurrency limits, and the afternoon-sized backpressure policy.

Never Let the Confined Process Dial Home · by Anusha Mukka

CVE-2026-82533 let DeepSeek’s sandboxed coding agent switch off its own sandbox with a single request to localhost. On the design lesson behind the flaw: a confinement boundary that the confined party can call is not a boundary.

Policy-as-Code for AI Systems: Governance at Infrastructure · by Anusha Mukka

Your AI governance policy shouldn’t be a document. It should be code. On turning every governance assertion into a machine-enforced gate: at training time, at the serving gateway, and in continuous runtime monitoring. Editorially reviewed and published on DZone. Read the article by Anusha Mukka on DZone.

Your Firewall Doesn’t Speak LLM! We Gave AI Agents the Keys. Nobody Asked If the Locks Still Work.

On agentic AI and the security assumptions it quietly breaks. Read on Medium.

Tutorials

Hands-on walkthroughs you can build in an afternoon. Each one starts from a real failure, gives you runnable code, and tells you honestly where the approach breaks. Browse all tutorials

On this site

On DEV Community

I also publish on DEV Community - essays on scale, security, and the craft of building systems that hold up.