Dispatches

thinking out loud about Bondy · the language, the platform, the protocols

Ideas, design notes, specs in progress, implementation stories and the occasional opinion, written by the people building Bondy while we build it.

Saying What · Part 9 of 10

The manifest is a module

A Bondy project describes itself in BCL, a configuration language with the same types as Bondy. The manifest of each application compiles to a module, so its code, its dependents and its releases all read one configuration type.

Oct 2026Language
Saying What · Part 8 of 10

The alarm that cleared itself

A derived boolean clears itself the moment the reading dips. A flag fixes that and loses when and why. Fluents and signals keep both, and they are the part of Bondy that is designed but not yet built.

Oct 2026Language
Saying What · Part 7 of 10

What a function is allowed to do

An Erlang -spec says what a function takes and returns, and nothing about whether it writes a file, sends a message or reads the clock. Bondy's compiler works that out, keeps it in the function's type, and checks it wherever it matters.

Oct 2026Language
Saying What · Part 6 of 10

Ask questions of your data

The recursive traversal you hand-roll loops on cycles, and fixing it takes a visited set and an accumulator. As a relation it is two lines, it terminates without a visited set, and the compiler rejects the version that could not.

Oct 2026Language
Saying What · Part 5 of 10

The process that owns the store

A rule store has to live somewhere, and on the BEAM that somewhere is a process. GenReactor is a supervised process whose state is a store and whose logic is rules, and the event is how it tells the world what happened.

Oct 2026Language
Saying What · Part 4 of 10

Rules that fire themselves

The state machine in your handle_call is one rule spread over a message shape, a lookup, a guard, a map update and a reply tuple. Written as a rule, it is four lines, and the engine decides when it runs.

Oct 2026Language
Saying What · Part 3 of 10

The type that validates

In Bondy a shape says which values are allowed and which are required. Unification checks data against it, at compile time when it can and at runtime when it must. You stop writing data validators by hand.

Oct 2026Language
Saying What · Part 2 of 10

One noun, more roles

Rich Hickey is right that complecting is the disease. But a map can play one role, datum. Bondy lets one typed value be held, imposed, emitted or latched, each role with its own verbs.

Oct 2026Language
Saying What · Part 1 of 10

Bondy as Consilience

Bondy began as a distributed application networking (DAN) platform, but that was only one piece of the puzzle. The ultimate goal was always the coming together of ideas into a single, coherent language and platform.

Oct 2026Language