Bloccs.Manifest.Join (bloccs v0.1.1)

Copy Markdown View Source

Join / correlation config from [join]. Present only on join nodes.

A join node has two or more in-ports carrying distinct schemas. Arrivals are correlated by the value of the on field (a field name present in every input payload) — when all in-ports have produced a payload for the same key, the node's pure_core receives the map %{port => payload} and emits the joined result.

  • on — the correlation-key field name (not a predicate).
  • timeout_ms — how long to wait for the other side(s) before giving up.
  • deadletter — the name of an out-port; a partial match that times out is emitted there (as an %{key, ports, payloads} envelope) so nothing is lost. Optional — without it, a timed-out partial is dropped with a [:bloccs, :join, :timeout] event.

Summary

Types

t()

@type t() :: %Bloccs.Manifest.Join{
  deadletter: atom() | nil,
  on: String.t(),
  timeout_ms: pos_integer() | nil
}