Inspect
Node
A pure transform. One message in, one out — same input, same output, no side effects. Its center dot marks the pure core.
kind = "transform"
THE NOTATION / 12 PRIMITIVES
One shape, twelve behaviors. Typed ports on the edges. Declared effects on the shell. A visual language you can read before you read the code.
Explore the library
1 in · 1 out · pure
kind = "transform"
Select a primitive below to inspect its form.
Hexagon the node
Lateral dots typed ports
Top pip + inner edge declared effect
Transform a message, reach the outside world, or compose a whole network.
Inspect
A pure transform. One message in, one out — same input, same output, no side effects. Its center dot marks the pure core.
kind = "transform"
Inspect
A transform that declares a capability. It may reach the outside world — but only what it declares. The top pip and doubled edge mark that capability boundary.
[effects]
Inspect
An entry point. No input — it produces messages into the graph and declares its ingress effect. Its right-hand port is the start of the flow.
kind = "source"
Inspect
An exit point. Messages terminate here; it declares the egress effect that writes them out. Its left-hand port is where the flow ends.
kind = "sink"
Inspect
A whole network as one node — a used manifest, flattened into the graph. The nested hexagon represents that composition.
use = "net.bloccs"
Route, combine, filter, and pace the messages moving between your nodes.
Inspect
Conditional fan-out. One message in, routed to one of several outputs by a decision — each output port names a possible route.
kind = "router"
Inspect
Combines streams. Messages from several inputs share one output, without waiting for a partner.
fan-in edges
Inspect
Predicate drop. Messages that don't match are dropped; the rest pass through unchanged. The funnel marks the predicate boundary.
return :drop
Inspect
Correlates by key. The first keyed message waits at the node until its partner arrives on the other input, then one combined result leaves.
[join]
Inspect
Groups messages and emits them as one batch, by size or timeout. The stacked glyph marks the grouped output.
[batch] size = N
Inspect
Rate limit. Smooths bursts into a steady, even output — the valve marks where the rate is controlled.
[rate]
Inspect
Time shift. Holds each message for a set duration, then releases it. The clock marks that timing boundary.
delay_ms = N
A VIEW OF THE PROGRAM
These shapes are a view of real bloccs constructs. The .bloccs
file remains the source of truth: node kinds, typed connections, and declared capabilities.
Declare the graph. Check the contracts. Let the BEAM run it.
Read the docs{:bloccs, "~> 0.9"}
We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect