Every event-driven backend eventually writes this method:
async placeOrder(input: PlaceOrderInput) {
await this.db.insert(orders).values(input); // 1. write the row
await this.kafka.send({ topic: 'order.placed', … }); // 2. publish the event
}
Every event-driven backend eventually writes this method: async placeOrder(input: PlaceOrderInput)...
Every event-driven backend eventually writes this method:
async placeOrder(input: PlaceOrderInput) {
await this.db.insert(orders).values(input); // 1. write the row
await this.kafka.send({ topic: 'order.placed', … }); // 2. publish the event
}

You have a well-designed order service. It writes to the database and publishes an event to Kafka....

Imagine a simple money transfer scenario. John sends money to his friend Sarah. The system...

Picture a customer tapping send on a payment, the app freezes for a second, and out of habit they tap...

The problem nobody talks about You have a payment gateway. It fails sometimes. So you add a...

Part 1 of 3 — the single-document case. There's a class of bug that every backend engineer ships at...

Distributed systems often struggle with one fundamental problem: how to ensure that database changes...