pg-outbox

Java 17+ · zero runtime dependencies · one table

Read the code git clone https://github.com/ArsalanRC/pg-outbox.git && mvn install

    Database says
    Broker heard

    delivered once delivered twice
    locked AS (
        SELECT o.id
          FROM outbox o
          JOIN candidate c ON c.id = o.id
         WHERE o.status = 'PENDING'                -- repeated on purpose
           AND o.available_at <= now()
           AND (o.claimed_at IS NULL OR o.claimed_at < now() - make_interval(secs => ?))
         ORDER BY o.id
         LIMIT ?
           FOR UPDATE OF o SKIP LOCKED
    )