Posts

Showing posts from September, 2026

Your Network Is Not Uniform

Image
Why the Edge Must Understand the World the Core Ignores In the previous article, we deliberately made the core less intelligent. That sounds counterintuitive at first glance, but it was entirely by design. Business logic should never have to reckon with raw HTTP headers, Redis caches, Kafka partitions, regional failovers, vendor SDK quirks, or database connection pool limits. The domain core must understand the business rules and strictly nothing more. That is the Rule of Anonymity : it produces an uncompromised domain model composed solely of accounts, payments, entitlements, and state machines, completely isolated from whether the underlying platform runs on AWS, Postgres, or a message broker. Yet, there is an unavoidable tension at play: while the core has the luxury of ignoring the outside world, your user does not. The Same Payment, Two Radically Different Journeys Consider a simple $5 payment executed under two different physical conditions. Customer A taps Pay while...

If Your Business Logic Knows AWS Exists, It Isn’t Business Log

Image
Open up your payment service codebase right now and check the imports. What do you see? Odds are, your core domain knows intimately that it lives in AWS. It knows that the request arrived over HTTP, that sessions reside in Redis, and that transaction records settle into Postgres. It knows the exact merchant gateway SDK it talks to, and it knows Kafka is waiting to broadcast the result. PaymentService → AWS + HTTP + Postgres + Kafka + Redis At first glance, this feels harmless. We tell ourselves, "Of course it knows these things—the code has to actually run somewhere." We build fast, wire frameworks directly into domain classes, and celebrate shipping the feature on time. If the sole responsibility of your service is to decide whether money can legally and safely transfer from Account A to Account B—why does that decision care about the names of AWS, Kafka, or Postgres? None of those tools change the fundamental ...

Your Microservices Haven't Failed. They Have Forgotten Why They Exist.

Image
The alert fires: the payment service is timing out. You pull up distributed tracing, bracing to debug a payment gateway failure or a database lock. Instead, the trace hands you a bewildering breadcrumb trail: Payment ↳ Tokenization ↳ User Profile ↳ Legacy Rules Engine ↳ Kafka Partition ↳ [TIMEOUT] That overloaded Kafka partition has nothing to do with processing payments. Yet somehow, it’s holding up real money. On paper, everything was done "by the book." The services live in independent repositories. They deploy through separate CI/CD pipelines, run in isolated containers, report to dedicated dashboards, and belong to different teams. Yet when an unrelated dependency stumbles, the core user flow halts. Your microservices haven’t failed technically. They’ve just forgotten why they were split up in the first place. We Confused Deployment Independence With Real Decoupling For years, the industry treated the mo...

The Silence After the Write

Image
The charge succeeded. The customer never heard about it. Ten seconds later, they pressed Pay again. Somewhere between those two events lies one of the hardest problems in distributed computing. The Transit Gate Dilemma A phone sends a request to charge $5 . The server validates, commits the ledger write, and moves the money. The train enters a tunnel—connectivity drops instantly. The 200 OK never reaches the client. Server View Transaction Committed (Succeeded) Client View Nothing Happened (Timeout) SYSTEM ENTERED STATE: UNKNOWN Retry risks a double-charge. Refusing the retry risks failing a transaction that never executed. “Networks fail. The problem is not the broken pipe—it is that our architecture assumed the response would always arrive to tell us the truth.” This Is How Architectural Dementia Begins The failure at the transit gate is no...

Cross-border payments

Image
  Cross-border payments are not fundamentally slow or expensive because we lack faster payment technology; they are slow and expensive because independently designed payment systems, regulations, compliance regimes, currencies, institutions, and governance models do not interoperate.

Learn to Think in Diagrams with DrawDiagrams

Image
A diagram does not just make a report look clean—it reveals how your mind works. When you map a system, you are forced to answer the hard questions: Where does data originate? Who owns state? What fails when a network call drops? The best engineers, architects, and technical leaders do not think in paragraphs—they think in systems, boundaries, and flows. DrawDiagrams is a free, zero-friction, browser-native tool built to turn visual thinking into muscle memory. No accounts, no locked proprietary formats, and no bloated setup: just clean, human-readable code that instantly renders into production-ready diagrams. Why Visual Literacy Sets You Apart In coursework, technical interviews, and engineering teams, plain prose breaks down quickly: Algorithms: Hide behind nested conditionals instead of clear control flow. Distributed systems: Disguise race conditions and single points of failure. Team workflow...

Are you looking for research oppurtunity?

Image
  2nd or 3rd year engineering students: Looking for real-world research experience? Drop a comment below to get involved in an upcoming initiative.

Production ready

Image
The gap between a clever proof-of-concept and a reliable, user-facing system usually breaks down across three critical dimensions: 1. Purpose: From Open-Ended to Bounded Prototype: Relies on broad, general-purpose prompts where success is measured by "did it sound convincing?" Production: Demands narrow scoping, bounded execution paths, deterministic guardrails, and rigorous evaluation criteria before a response ever hits the user. 2. Data: From Convenience to Compliance Prototype: Fueled by scraped datasets, sample CSVs, and ad-hoc context dumps. Production: Requires strict data lineage, verified sources, privacy controls, and fine-grained access governance so sensitive information never leaks across tenant boundaries. 3. Actions: From Direct Execution to Guarded Authority Prototype: Hands an agent direct tool access to call APIs, mutate databases, or send messages. Production: Operates on the principle of least privilege. Destructive or high-impact actions require app...

The Most Dangerous Word in Agentic AI Is “Timeout”

Image
Transaction Boundary Failures — and the infrastructure we need before agents are trusted with real-world actions A customer asks an AI agent to upgrade an account. The workflow looks harmless. First, charge the card. Then update the subscription ledger. Then provision the new entitlement. The agent calls the payment API. The payment provider charges $500. And then the connection times out. What happened? That sounds like a simple question. It isn't. The agent knows that it did not receive a successful response. It does not know that the charge failed. Those are two very different things. The payment may have failed before reaching the provider. The payment may still be processing. Or the payment may have completed perfectly and only the response was lost somewhere between the provider and the agent. Now imagine what happens when we put an LLM in the middle of this uncertainty. “The payment request timed out. I still need to complete the upgrade. Let me try again.” That sentence...

Vital by ShareCapsule: Building a Local-First Daily Wellness System

Image
Most wellness apps begin with a category: meditation, exercise, sleep, journaling, or habit tracking. We started from a different question: What are the small actions that help someone support their day as a whole? That question gradually became Vital by ShareCapsule , a mobile-first, installable wellness PWA built around breathing, movement, learning, recovery, connection, and reflection. The goal is not to build another app that asks people to achieve perfect scores or maintain endless streaks. The goal is much simpler: Make small positive actions easy to start, repeat, and understand. Vital is currently built as a local-first Progressive Web App. It does not require an account for the core experience, and the current product stores activity history, routines, settings, wellness check-ins, gratitude metadata, learning reflections, and sleep check-ins in the browser rather than sending them to a central cloud database. Why we built it this way Modern wellness products often become com...

AI Agents Are Easy to Demo. Making Them Safe to Run a Business Is the Hard Part.

Image
AI agents can now be built surprisingly quickly. Connect an LLM to a few APIs, expose some tools through MCP, add a workflow, and within hours an agent can create tickets, modify cloud resources, update databases, send messages, provision infrastructure, or trigger business processes. That is exciting. But once agents start performing real-world actions, a much harder engineering problem appears: What happens when an agent completes steps 1 and 2, but step 3 fails? What if the network times out and we do not know whether an external API actually completed the operation? What if two instances of an agent attempt to recover the same workflow? What if an AI agent is authorized to inspect an environment but should not be allowed to modify production? What if a low-risk operation can run automatically, while a high-risk operation needs human approval? At that point, the problem is no longer primarily about prompting or LLMs. It becomes a problem involving: distributed systems transaction ma...