Skip to main content

Technical reference

The parts of the design that decide whether results are correct.

This page is written for engineers and architects evaluating the platform. It describes structure and behaviour without benchmark claims — measured figures depend on your workload and deployment, and we would rather establish them with you than publish numbers you cannot reproduce.

01Event lifecycle

From append to readable result

  1. t0AppendThe event is written to a partition determined by its key and acknowledged once durable.
  2. t1AdvanceThe owning operator instance reads the next offset in sequence for that partition.
  3. t2ApplyLocal state for the key is read and updated as part of processing the event.
  4. t3CheckpointState is committed together with the offset it corresponds to.
  5. t4ExposeThe derived value becomes readable on the view and emitted to subscribers.
Fig. 1 — Ordered lifecycle of a single event. Stages are sequential per key, concurrent across keys.

02Partitioning & ordering

Ordering is scoped to a key, on purpose

Global ordering across an entire stream would serialise the system. Ferrite guarantees order where correctness needs it — within a key — and processes keys in parallel.

Key selection

You choose the partition key: account, device, order, tenant. It determines both ordering scope and parallelism.

Skew

Uneven key distribution is exposed per partition, so hot keys can be identified rather than inferred from lag.

Rebalance

Partition ownership can move between instances; the new owner resumes from the committed checkpoint.

Late data

Windows carry an explicit policy for events that arrive after the window advanced, instead of silently discarding them.

03Delivery semantics

Stated plainly, because it is usually stated vaguely

Producer append

Acknowledged after the event is durably recorded in its partition.

Processing

Offsets are committed with the state they produced, so recovery resumes without reapplying committed work.

Emission to external sinks

Depends on the destination: idempotent or transactional sinks preserve the guarantee; others require a de-duplication key.

We do not claim a single end-to-end guarantee for every configuration, because the weakest link is normally the external system at the edge of the pipeline. During evaluation we go through your sinks individually.

04Failure behaviour

What happens when something breaks

Instance loss

Partitions owned by the lost instance are reassigned; processing resumes from the last checkpoint for those keys.

Slow downstream

Backpressure propagates upstream. Producers observe it rather than the system quietly buffering without bound.

Poison record

Records that repeatedly fail are diverted for inspection so a single event cannot stall a partition indefinitely.

Bad deployment

A workload version can be stopped and replayed from a chosen offset once corrected, because the log retains the input.

05Deployment

Where it runs

Deployment topology is decided with you rather than fixed by us. What we can describe is the shape of the options and their operational consequences.

Environment

The runtime and log are designed to run within infrastructure you control, so data residency follows your existing boundaries.

Scaling

Throughput scales with partitions and operator instances; state size scales with keys retained per operator.

Upgrades

Workloads are versioned units, so a component can be upgraded without redeploying the whole pipeline.

Regions

Multi-region behaviour is a design conversation about ordering and latency trade-offs, not a checkbox.

Next step

Take the architecture apart with us.

We are comfortable spending a session on partition keys, checkpoint intervals and sink semantics before anyone talks about commercials.