ulak
ulak : Transactional Outbox extension for PostgreSQL with reliable asynchronous delivery
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 2680 | ulak | ulak | 0.0.2 |
FEAT | Apache-2.0 | C |
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
| --sLd-- | No | Yes | Yes | Yes | no | no |
| Relationships | |
|---|---|
| Schemas | ulak |
| See Also | pgmq pgmb pg_durable redis pgq pgmqtt pg_task tcn pg_background fsm_core |
Packages
| Type | Repo | Version | PG Major Compatibility | Package Pattern | Dependencies |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.0.2 |
18 17 16 15 14 | ulak |
- |
| RPM | PIGSTY | 0.0.2 |
18 17 16 15 14 | ulak_$v |
- |
| DEB | PIGSTY | 0.0.2 |
18 17 16 15 14 | postgresql-$v-ulak |
- |
| Linux / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| el8.aarch64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| el9.x86_64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| el9.aarch64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| el10.x86_64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| el10.aarch64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| d12.x86_64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| d12.aarch64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| d13.x86_64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| d13.aarch64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| u22.x86_64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| u22.aarch64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| u24.x86_64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| u24.aarch64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| u26.x86_64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
| u26.aarch64 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 | PIGSTY 0.0.2 |
Source
github.com/zeybek/ulak
ulak-0.0.2.tar.gz
Install
Make sure PGDG and PIGSTY repo available:
Install this extension with pig:
Config this extension to shared_preload_libraries:
Create this extension with:
Usage
Sources: README, wiki, v0.0.2 release
ulak implements the transactional outbox pattern inside PostgreSQL. Messages are inserted transactionally, then background workers deliver them asynchronously with retries, circuit breaking, and dead-letter handling.
Enable the Extension
The README also shows setting ulak.database when running the included Docker example.
Define Endpoints and Send Messages
The same API pattern is documented for kafka, mqtt, redis, amqp, and nats endpoints.
Delivery Controls and Pub/Sub
Monitoring and Recovery
Key Settings
The README highlights these ulak. GUCs:
workerspoll_intervalbatch_sizemax_queue_sizecircuit_breaker_thresholdcircuit_breaker_cooldownhttp_timeoutdlq_retention_days
The v0.0.2 release notes only document a Docker publish workflow fix, so the current README and wiki remain the authoritative user-facing usage sources.