ATHEROS SEARCH COMPONENT / INGESTION COORDINATOR

Durable eventingestion.

Octopus coordinates ingestion, document preparation, and PostgreSQL projections for Atheros Search. It persists events, jobs, and load results so processing can resume after a restart. This page includes current metrics and recorded history.

Receive

Read events from configured streams.

Coordinate

Claim jobs, build batches, and track loads.

Recover

Resume from saved progress and handle replay.

PIPELINE OBSERVABILITY

Spot backlog. Investigate stalled work.

Check processing, queued work, and recorded production history to see where investigation should begin.

Production metrics

Refreshes every 30 seconds

Waiting for a production reading

A fresh reading is needed to show processing and backlog. The public feed cannot currently confirm pipeline activity. This does not establish whether processing has stopped.

Explore the receive, process, and record workflow
What these numbers mean

Pipeline readings refresh every 30 seconds. When live collection is delayed, the latest recorded totals and hourly history remain visible with their original measurement times. The page retries automatically and keeps a validated public snapshot in this browser for later visits. No example values or build-time snapshots are used.

The processing rate covers successfully committed broker deliveries at the responding coordinator, averaged over five minutes, including replays and parked records. Pending ledger rows and broker backlog are separate measurements. Live gauges appear once the rate window and collection are ready.

Historical peaks count rows in the production ingestion ledger across all paths and outcomes. They are not unique business events or a capacity benchmark. Days use UTC. Weeks run Monday to Sunday. Current periods are counted so far. History is refreshed separately, with its own measurement time.

Lifetime totals and hourly throughput windows count rows in the same ingestion ledger. The last-24-hours window holds 24 measured hourly totals and the last-7-days window holds 168. A measured hour may honestly be zero. A window that was never computed stays unavailable instead of showing zeros.

Events, jobs, and outcomes

Each stage records the state needed by the next.

  1. 01 / Receive eventsReceive

    Receive events

    Input
    Events and requests from configured streams
    Processing
    Read from saved offsets and check for repeated delivery
    Output
    Recorded events ready for processing
  2. 02 / Coordinate jobsProcess

    Coordinate jobs

    Input
    Queued records and jobs
    Processing
    Claim work, form batches, and dispatch database loads
    Output
    Tracked jobs with load results
  3. 03 / Record outcomesRecord

    Record outcomes

    Input
    Processing results and source offsets
    Processing
    Save ingestion history and update configured data views
    Output
    A persistent record operators can inspect

Investigating pipeline state

For platform and data teams running event pipelines that need to recover from failures and account for repeated delivery.

Engineering traces delivery and recovery state. Operations checks throughput, backlog, and the freshness of reported activity.

FOR ENGINEERS

Trace source records and recovery state.

  • Start incident triage at the source: find the consumer group, topic, partition, and offset behind an ingestion record.
  • Inspect durable deduplication and committed offsets to understand replay after a restart.
  • Follow job claims, batches, and database load results through the Scala, Cats Effect, and FS2 coordinator.

FOR OPERATORS

Check processing and backlog.

  • Check processing rate and queued records to identify a growing backlog.
  • See whether intake is accepting work or paused to let the backlog drain.
  • Compare hourly throughput and recorded peaks, with timestamps that distinguish fresh readings from delayed data.

Persistence and recovery

Built in Scala with Cats Effect and FS2, using Redpanda streams and PostgreSQL for persistent state.

Source coordinates

Start incident triage with the consumer group, topic, partition, and offset stored on each ingestion record. Replayed records keep their original first-seen time so you can trace the original delivery.

Committed offsets and deduplication

Recover after a restart using committed consumer offsets and durable deduplication for repeated delivery. New groups begin at the earliest records still retained.

Leases and pending work

Time-limited claims coordinate workers competing for queued work. Inspect stored jobs, batches, and outgoing messages to see the state of each load when processing stalls.

PostgreSQL projections

Octopus updates PostgreSQL data views and derives alerts. Atheros Search runs the separate workers that create embeddings.

Octopus events, jobs, and recorded results Octopus reads incoming events from saved offsets, coordinates jobs and database loads, and stores their results for later review.RECEIVEIncoming eventssaved offsetsPROCESSJobs / batchestracked loadsRECORDRecorded resultsstored history
Source offsets, job state, and recorded outcomes connect each stage of the pipeline.

DELIVERY AND RECOVERY

Delivery can repeat. Octopus records progress and uses durable deduplication to handle replay. Records outside the configured streams are not covered.

Consumer offsets, job state, and load results give operators a place to start when work stalls.

Terms

Ingest ledger

A stored record of consumed events and their outcomes, identified by consumer group, topic, partition, and offset.

Lease

A time-bounded claim on work used to coordinate processing.

Outbox

Durable records of messages waiting for dispatch.

At-least-once

A delivery model in which records may be delivered again. Durable deduplication handles repeated work.

Peak day / week

The highest historical ledger-row count in a UTC calendar day or Monday-to-Sunday ISO week, including the current period so far.

CONTACT

Questions about your pipeline?

Email me about your streams, processing bottlenecks, or recovery problems. Include the failure you are trying to understand.

Email Rafael

Opens your email app, or email rafael@rclabs.uk. Start by email. We can arrange a technical call together.