Bios.Outbox 0.1.0

Bios.Outbox

PostgreSQL uzerinde transactional outbox: is, cagiranin KENDI transaction'inda kuyruklanir; surekli bir isci FOR UPDATE SKIP LOCKED ile sinirli bir havuz altinda bosaltir. Biten is SILINIR; tukenen is dead olur; her deneme ustel geri cekilmeyle yeniden zamanlanir.

Tablo

Kutuphane su tabloyu bekler (gocunuze ekleyin):

create table outbox_jobs (
    id         bigint generated always as identity primary key,
    queue      text not null,
    kind       text not null,
    payload    jsonb not null default '{}',
    status     text not null default 'queued'
               check (status in ('queued', 'running', 'dead')),
    attempts   int not null default 0,
    run_after  timestamptz not null default now(),
    created_at timestamptz not null default now(),
    started_at timestamptz,
    last_error text
);

create index outbox_jobs_ready_idx
    on outbox_jobs (queue, run_after, id) where status = 'queued';

Rol ayrimi kullanan bir sistemde: kuyruklayan role select, insert, isci rolune select, update, delete.

Kullanim

services.AddOutbox(connectionString);          // isci tarafi: NpgsqlDataSource
services.AddOutboxHandler<MyJobHandler>();     // kind -> handler
services.AddOutboxQueue("transfer", concurrency: 50);

Kuyruklama, cagiranin transaction'ina katilir -- ayrintilar icin IOutbox.EnqueueAsync belgelerine bakin.

No packages depend on Bios.Outbox.

Version Downloads Last updated
0.1.0 2 08/29/2026