Transactional Outbox Reliable Event Publishing Design Prompt
Design a transactional outbox so a service reliably publishes events to a broker only when its database commit succeeds — eliminating dual-write inconsistency where a record saves but the triggering event is lost, or an event fires for a transaction that rolled back.
- Target user
- Platform engineers building reliable event-driven automation
- Difficulty
- Advanced
- Tools
- Claude, ChatGPT
The prompt
You are a senior distributed-systems engineer who has chased ghost events that fired for orders the database never actually committed. I will provide: - The service, its database, and the state change that should emit an event - The target broker (Kafka, SQS/SNS, RabbitMQ, Pub/Sub) and its delivery semantics - Current publishing approach and any observed lost or phantom events - Throughput, latency tolerance, and ordering requirements Your job: 1. **Outbox schema** — design the outbox table (id, aggregate, payload, status, timestamps) and show how the event row is written in the SAME transaction as the business change. 2. **Relay mechanism** — choose and justify a publisher: polling relay vs. change-data-capture (e.g. Debezium), with the trade-offs for latency, ordering, and operational cost. 3. **At-least-once and consumer dedupe** — accept that the relay delivers at-least-once, and define the consumer-side idempotency key so duplicate deliveries are harmless. 4. **Ordering** — specify how per-aggregate ordering is preserved through the outbox and partition/queue key, and where global ordering is impossible. 5. **Cleanup and backpressure** — define retention/archival of published rows and what happens when the broker is down and the outbox grows. 6. **Failure handling** — describe relay crash recovery, poison rows, and a DLQ/quarantine path for payloads that repeatedly fail to publish. 7. **Observability** — list metrics for outbox lag, unpublished backlog, and relay health so a silently stalled relay is caught fast. Output as: an outbox table DDL sketch, a transaction-write code outline, a relay design with trade-off table, and a consumer idempotency spec. Note that the outbox guarantees delivery but not exactly-once processing — require consumer idempotency, and document a manual replay/reconciliation procedure for any event suspected lost during a relay outage.
Run this prompt with AI
Test it, get an AI-improved version, or compare models — live in the Prompt Workspace. No copy-paste.
Related prompts
-
Event Ordering and Sequencing Guarantee Design Prompt
Design an event-driven automation flow that preserves the ordering guarantees the domain actually needs, choosing partition keys, sequencing, and out-of-order handling so state-changing events apply in the correct order.
-
Event Bus Fan-Out Architecture Design Prompt
Design an event-driven fan-out architecture (EventBridge, Kafka, NATS, or SNS/SQS) that routes a single event to multiple automated consumers with replay, ordering, and dead-letter handling.
-
Event Schema Versioning and Contract Evolution Design Prompt
Design a versioning and compatibility strategy for automation event payloads so producers can evolve schemas without breaking existing consumers, with explicit rules for additive, breaking, and deprecation changes.
-
Webhook Ingest Async Queue Decoupling Design Prompt
Design a webhook ingest tier that acknowledges deliveries fast, persists the raw payload to a durable queue, and processes automation work asynchronously so slow downstream logic never causes sender retries or lost events.
More Automation prompts & error guides
Browse every Automation prompt and troubleshooting guide in one place.
Reading prompts? Get all 500 in one free PDF
500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.
- 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
- Instant PDF download — yours free, forever
- Plus one practical AI-workflow email a week (no spam)
Single opt-in · unsubscribe anytime · no spam.