Skip to content
cccskills
FreePublished on GitHub

outbox-pattern

Load for reliable post-commit messaging, domain/integration event delivery, transactional outbox tables, dispatch workers, retries, idempotent consumers, duplicate delivery, or dual-write failure; not for synchronous in-process events with no external side effect.

The English summary is being prepared. Showing the original description.

See how to install

Files included (5)

  • SKILL.md2.0 KB
  • resources/database-schema.md1.7 KB
  • resources/dispatcher-patterns.md2.3 KB
  • resources/entity-model.md2.1 KB
  • resources/processor-configuration.md2.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

ABOUTME: Transactional outbox pattern skill for reliable at-least-once event delivery. ABOUTME: Covers OutboxMessage entity, OutboxProcessor, retry/dead-letter, and specialized variants.

Outbox Pattern

Non-Inferable Rules

  1. OutboxMessage uses UUID v7 (Guid in C#, uuidv7() in PostgreSQL) — not auto-increment.
  2. TryMarkAsProcessing uses optimistic concurrency — returns bool, no exceptions on contention.
  3. Retry delay formula: InitialRetryDelaySeconds × 2^retryCount, capped at MaxRetryDelaySeconds.
  4. After MaxRetries exhausted, status transitions to DeadLettered — messages stay in DB indefinitely for monitoring.
  5. LoggingOutboxMessageDispatcher is the default no-op — real dispatchers must be registered to replace it.
  6. Three specialized outbox variants exist: general OutboxMessage, PolicyChangeOutbox (settings), PdsSyncOutbox (AT Protocol federation). Each has its own entity and repository.
  7. OutboxProcessor polls on a PeriodicTimer — not event-driven. Default interval: 5 seconds.
  8. Dispatchers must be idempotent — at-least-once delivery means duplicates are possible.

Resources

  • resources/entity-model.md — OutboxMessage fields, status lifecycle, EF configuration
  • resources/processor-configuration.md — OutboxProcessor settings, retry strategy, dead-letter
  • resources/dispatcher-patterns.md — IOutboxMessageDispatcher, specialized variants
  • resources/database-schema.md — Indexes, queries, database conventions

Related

  • docs/internal/OUTBOX_PATTERN.md
  • docs/internal/ARCHITECTURE.md (Background Services section)
  • .agents/skills/dotnet-efcore-guidelines/SKILL.md
  • .agents/skills/clean-architecture-rules/SKILL.md

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Load for Blazor/MudBlazor UI changes involving forms, dialogs, focus, keyboard navigation, landmarks, ARIA, color contrast, RTL-safe styling, or WCAG 2.2 AA tests; not for backend-only changes.

The English summary is being prepared. Showing the original description.

islamu-ngo/Event8Updated Oct 21, 2026

Load when a task asks to research, verify, compare, or look up framework/package behavior, release notes, standards, RFCs, CVEs, or unfamiliar APIs; use repository evidence first, then official docs, and not for codebase navigation alone.

The English summary is being prepared. Showing the original description.

islamu-ngo/Event8Updated Oct 21, 2026

aspire

Free

Load for Aspire AppHost work: start/stop/wait resources, inspect dashboard/logs/traces, add integrations/resources, rebuild a service, run isolated worktrees, or diagnose Aspire orchestration; not for plain dotnet apps, container-only deployments, or cloud deployment.

The English summary is being prepared. Showing the original description.

islamu-ngo/Event8Updated Oct 21, 2026

Load for authentication or authorization changes involving BFF cookies/tokens, JWT validation, claims/user ID extraction, policies, handler access checks, impersonation, or 401/403 bugs; not for UI affordance gating alone.

The English summary is being prepared. Showing the original description.

islamu-ngo/Event8Updated Oct 21, 2026

Load for Blazor BFF server work involving YARP proxy routes, cookie sessions, access-token forwarding/refresh, downstream API calls, BFF handlers, or browser-to-API auth failures; not for client component rendering or API JWT validation alone.

The English summary is being prepared. Showing the original description.

islamu-ngo/Event8Updated Oct 21, 2026

Load when editing Blazor `.razor.css`, scoped selectors, `::deep`, BEM class names, RTL/logical CSS properties, or styling nested MudBlazor components; not for global design tokens or non-Blazor CSS.

The English summary is being prepared. Showing the original description.

islamu-ngo/Event8Updated Oct 21, 2026

See all skills by islamu-ngo

Report a problem with this skill