Contents
Changelog
All notable changes to ulak will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.0 (2026-09-07)
⚠ BREAKING CHANGES
- sql: ulak_application and ulak_monitor lose SELECT on ulak.endpoints (use ulak.endpoint_status); ulak.prevent_payload_modification() is removed; redrive_message() raises for DLQ rows that are not in failed state.
- core: ulak.database requires a server restart to change (pg_reload_conf no longer applies it), and metrics() no longer returns spawns_total, spawn_failures_total or restarts_total.
Features
- sql: endpoint_status view, tighter grants, single queue trigger and 0.1.0 upgrade path (0ffc72e)
Bug Fixes
- http: stable webhook ids, whsec_ secrets, stricter SSRF guard and 4xx handling (9f2d3d4)
- kafka: fix use-after-free in batch growth and stale delivery callbacks (cdc4aec)
- mqtt: wait for the broker acknowledgement on synchronous QoS ½ publishes (52a4059)
- nats: confirm JetStream publishes via AckHandler instead of dropping errors (02ae498)
- nats: require the result buffer in dispatch_ex (2f85dcb)
- resolve v0.0.3 review findings and prepare the 0.1.0 upgrade path (64aafb5)
- worker: drain LISTEN queue, defer rate-limited rows and expire messages (948ed2f)
Code Refactoring
- core: remove dead launcher, DSM and entity layers; log endpoint DDL at LOG level (6438255)
Documentation
- readme: link test directories with relative paths (19aca5c)
Continuous Integration
- fail the clang-tidy gate on errors and suppress cppcheck’s branch-limit notice (73b1d31)
Miscellaneous
- release: list every commit type in the changelog (f8b29ae)
- release: verify the extension upgrade chain reaches the released version (569fa79)
0.0.3 (2026-05-12)
Bug Fixes
0.0.2 (2026-04-15)
Bug Fixes
- add manual trigger to Docker publish workflow (dfa5fa8)
0.0.1 (2026-04-15)
Features
- initial commit (a928cf0)
[0.0.0]
Added
- Core transactional ulak with
send(),send_with_options(),send_batch(), andsend_batch_with_priority()functions. - Pub/Sub system with
publish(),publish_batch(), event types, and subscriptions. - Six protocol dispatchers: HTTP (always enabled), Kafka, MQTT, Redis Streams,
AMQP, and NATS (conditional compilation via
ENABLE_*flags). - Batch dispatch support for Kafka, MQTT, and AMQP with async produce/flush.
- Multi-worker background processing with modulo-based queue partitioning
(
bgw_main_arg = (total_workers << 16) | worker_id). - Circuit breaker per endpoint with configurable threshold and cooldown.
- Dead-letter queue (DLQ) with
redrive_message(),redrive_endpoint(),redrive_all(), anddlq_summary(). - Monthly-partitioned archive table with
replay_message()andreplay_range(). - Backpressure control via
max_queue_sizeGUC. - GUC parameters covering core, retry, circuit breaker, HTTP, Kafka, Redis, MQTT, AMQP, NATS, data retention, and response capture.
- RBAC with three roles:
ulak_admin,ulak_application,ulak_monitor. - HTTP dispatcher with libcurl, curl_multi batching, SSRF protection, OAuth2, SigV4, and Bearer/Basic/API-key authentication.
- Kafka dispatcher with librdkafka, delivery reports, and batch produce.
- MQTT dispatcher with libmosquitto, QoS levels, and PUBACK-based batch mode.
- Redis Streams dispatcher with hiredis, TLS support, and consumer groups.
- AMQP dispatcher with librabbitmq, publisher confirms, and batch produce.
- NATS dispatcher with Core NATS / JetStream publishing and batch flush support.
- Shared memory worker registry with LWLock coordination.
- LISTEN/NOTIFY integration for low-latency message wake-up.
FOR UPDATE SKIP LOCKEDconcurrent queue consumption.- Ordering key support for per-key sequential delivery.
- Idempotency key support with conflict detection.
- Scheduled message delivery via
scheduled_atparameter. - Message TTL with automatic expiration via
mark_expired_messages(). - CloudEvents envelope support for HTTP dispatcher.
- Webhook HMAC signature verification.
- 27 regression tests, 12 isolation tests, and 3 TAP tests with
make installcheck. - Docker Compose development environment with all protocol services.
- GitHub Actions CI for PostgreSQL 14-18 testing and static analysis.
This entry describes the initial contents of version 0.0.0.