outbox-handler-add

Scaffolds outbox target handlers for asynchronous saga dispatches with replay-safety and commit-then-enqueue semantics.

Updated May 2, 2026
One-click install
npx skills add https://github.com/gmanch94/agora --skill outbox-handler-add
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: outbox-handler-add
Source: https://github.com/gmanch94/agora/tree/main/.claude/skills/outbox-handler-add
Command: npx skills add https://github.com/gmanch94/agora --skill outbox-handler-add

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill prevents unsafe, non-atomic external dispatches by guiding you to add a new outbox target handler that works with the system’s commit-then-enqueue and replay-safety guarantees.

Core Features & Use Cases

  • Handler contract scaffolding: Defines the required coroutine signature, idempotency-key usage, and failure/retry/dead-letter behavior for an outbox handler.
  • Application wiring checklist: Walks you through adding the client wrapper, outbox dispatch builder, lifespan registration in OutboxWorker, and the required flow changes to emit OutboxIntent instead of making inline calls.
  • Test and documentation integration: Ensures you add a focused dispatch unit test and update PRD/ADR and known-gap documentation as needed for the new external target.

Quick Start

Use the outbox-handler-add skill to add a new outbox target called X so your saga steps enqueue asynchronous dispatches with correct idempotency and worker delivery semantics.

Frequently Asked Questions about outbox-handler-add

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new outbox handler for asynchronous saga dispatches?

To add a new outbox handler for asynchronous saga dispatches, you scaffold a coroutine implementing the handler contract, wire lifecycle registration into the OutboxWorker, and emit OutboxIntent from forward or compensating steps instead of inline calls.

What is the outbox pattern for replay-safe asynchronous dispatch?

The outbox pattern for replay-safe asynchronous dispatch uses commit-then-enqueue semantics and idempotency keys to ensure external integrations receive exactly-once delivery, preventing unsafe non-atomic dispatches even during worker retries or dead-letter scenarios.

How do I wire a new external integration into an OutboxWorker registry using FastAPI lifespan?

Wiring a new external integration into an OutboxWorker registry using FastAPI lifespan requires adding a client wrapper, configuring the outbox dispatch builder, and registering the handler during application startup to emit OutboxIntent events safely.

Do I need idempotency keys for outbox pattern saga dispatch testing?

Yes, idempotency keys are required for outbox pattern saga dispatch testing to guarantee replay-safety. You must create a focused worker dispatch unit test verifying failure, retry, and dead-letter behavior for the new external target handler.

Why does my saga outbox dispatch fail without commit-then-enqueue guarantees?

Saga outbox dispatches fail without commit-then-enqueue guarantees because inline external calls are non-atomic, causing data inconsistency. You must emit OutboxIntent after database commit and rely on the OutboxWorker for asynchronous delivery.

Best way to scaffold a dead-letter retry handler for an outbox target?

The best way to scaffold a dead-letter retry handler for an outbox target is to implement the required coroutine signature with explicit idempotency-key usage, ensuring the OutboxWorker safely handles failures and retries without duplicate dispatches.