Expand description
§Ingestix Core
A small “glue” micro-framework for building high-throughput ingestion pipelines.
Ingestix wires together two concepts:
- An
Ingestorthat listens for incoming data and pushes messages into a bounded queue. - A
Workerthat pulls from that queue and processes messages concurrently.
The main orchestration point is Ingestix::launch.
§Quick mental model
Ingestor::runruns in the background and callstx.send(msg)whenever it receives one.Worker::processgets invoked for each queued message (up to your configured concurrency).- Failures follow a
WorkerFailurePolicy(BestEffortvsFailFast).
§Feature flags
ingestorsenables the built-in HTTP/TCP/UDP ingestors (modules:http,tcp,udp).derivere-exportsFlowWorkerfrom theingestix-deriveproc-macro crate for generatingWorkerimpls.metricsenables the Prometheus monitor server (/metrics,/health/*).
§Doctest note
The public API is documented inline, but examples are intentionally marked ignore
because they depend on your application-level message/config/state types.
Structs§
- Flow
Counter Name - A lightweight wrapper around a metric name.
- Flow
Gauge Name - A lightweight wrapper around a metric gauge name.
- Ingestix
- Main orchestrator that ties an
Ingestorand aWorkertogether. - Shared
Context - Shared runtime context shared between ingestor and worker.
Enums§
- Worker
Failure Policy - What should the core do when workers start failing.
Constants§
- CURRENT_
QUEUE - Current internal queue depth (best-effort gauge).
- INGESTED_
MSGS - Total successfully enqueued messages (ingestor -> core queue).
- PROCESSED_
MSGS - Total messages successfully processed by workers.
- RECEIVED_
MSGS - Total messages received by ingestors (before any validation / enqueueing).
- REJECTED_
INVALID_ API_ KEY - Requests rejected because an API key / token didn’t match.
- REJECTED_
INVALID_ JSON - Messages rejected due to invalid JSON decoding.
- REJECTED_
OVERLOADED_ QUEUE - Messages rejected because the internal queue was saturated.
- REJECTED_
OVERSIZED_ PAYLOAD - Messages rejected because the payload exceeded the configured maximum size.
- REJECTED_
REQUEST_ TIMEOUT - Requests rejected due to handler/reader timeout.