Skip to content

Repository files navigation

altiquum-event-engine

altiquum-event-engine is a production-grade, highly concurrent, and durable event-driven processing engine written in Go. It establishes the message routing, event ingestion, and reliable delivery backbone for the ALTIQUUM ecosystem.


Architectural Layout

altiquum-event-engine/
├── go.mod               # Go module declaration (links to altiquum-core)
├── README.md            # Technical specifications
├── LICENSE              # MIT License
├── Makefile             # Test and benchmark execution
├── event/               # Event schemas, structures, and validation
├── dedupe/              # Idempotency and deduplication registry
├── store/               # Binary segment Write-Ahead Log (WAL)
├── broker/              # Ingesting, header-filtering, routing registry
├── delivery/            # Concurrency workers, retry-backoff, and DLQ
├── telemetry/           # Telemetry metrics and trace spans
├── benchmarks/          # Core broker and ingestion benchmarks
└── examples/            # End-to-end crash-recovery simulation

Technical Features & Guarantees

1. Concurrency & Ingestion

  • Scalable, non-blocking ingestion channel using Go channels and worker routing pools.
  • Concurrent subscription matching based on event headers.

2. At-Least-Once Delivery

  • Events are appended to a binary Write-Ahead Log (WAL) before dispatch.
  • If a consumer fails or is interrupted mid-delivery, the broker can replay the WAL segment on restart.
  • Committing events (acknowledgments) mark WAL positions.

3. Header-Based Routing

  • Subscribers can filter events based on headers (e.g. key-value matching), allowing flexible pub/sub patterns without complex topics structures.

4. Idempotency & Deduplication

  • Integrated idempotency filters tracking processed event IDs within a sliding time-to-live (TTL) window to block duplicate deliveries.

5. Resilient Delivery (Retries & DLQ)

  • Delivery pipelines feature automated exponential backoff with full jitter for temporary failures.
  • Unprocessable events that exhaust all retries are permanently routed to a Dead-Letter Queue (DLQ) directory for off-line audit.

Getting Started

Prerequisites

  • Go 1.26+
  • altiquum-core initialized in /scratch/altiquum-core (linked locally via go.mod replacement)

Verification

Run tests:

make test

Run benchmarks:

make bench

Run simulated workload:

go run examples/main.go

About

Modular event processing engine with retries, idempotency, routing, and delivery guarantees.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages