A language and a platform
for distributed multiagent systems
Bondy is a declarative language for building distributed, multiagent systems, and a scalable platform for connecting them. The language is statically typed, functional, relational and rule-based. Both run on the BEAM, share one model of the world, and are open source.
One name. Several pieces.
Each part stands on its own — use the Connect without the language, or the language without Connect. Together they cover the whole path from modelling a multiagent system to running one.
type Age = Int & > 0 let x = Age(-3) ↑ -3 violates > 0
Model the system, not the plumbing.
A declarative language for the BEAM, built for multiagent systems: statically typed, functional, relational and rule-based. Validation, logic, time and reactivity live under one type system instead of being bolted on.
Route calls and events between everything.
An always-on polyglot application networking platform with an agentic core, deployed as a binary, supporting multiple protocols: WAMP, MCP, REST/API gateway, and master-less clustering using Causal+ consistency data replication. In production for 10 years.
Bondy platform, managed.
Hosted routing and runtime — clusters, realms and observability, without operating the fabric yourself.
The same ground under all of it.
Every piece is built from OTP applications on the BEAM and is distributed by default. Adopt one, and the rest are already compatible by construction.
What's happening.
Ideas, design notes, specs and implementation stories from the people building Bondy.
All dispatches →One module, five nouns
The rate limiter from the series, whole, on one page. Every line compiles on the current toolchain, each section links to the post that explains it, and the install is at the bottom.
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.
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.