Skip to content
@Bloccs

Bloccs.io

Building the next generation of developer tools

Bloccs

Typed, supervised dataflow on the BEAM.

Hex Version Hex Docs Apache 2 License


You describe a graph of processing stages as a TOML file. bloccs type-checks the wiring, enforces what each stage is allowed to do, and compiles it to a Broadway/GenStage supervision tree. The flow is data, not code — git-diffable, reviewable, and authorable by humans or agents.

It's flow-based programming for Elixir, built the BEAM way: every stage is a supervised process, edges carry versioned schemas, and effects (DB, HTTP, time, randomness) are declared capabilities the compiler enforces — undeclared side effects fail to compile. Technically, a bloccs network is an agentic computation graph (ACG): a typed, declarative IR for streaming and request/response dataflow.

# events.bloccs — a webhook processor, as a file
[nodes]
ingest   = { use = "nodes/ingest.bloccs" }
validate = { use = "nodes/validate.bloccs" }
route    = { use = "nodes/route.bloccs" }

# Fan-out: a known event is both persisted and notified.
[[edges]]
from = "route.known"
to   = ["persist.event", "notify.event"]
# persist.bloccs — a node declares its ports, schemas, and the one effect it may use
[ports.in]
event = { schema = "EnrichedEvent@1" }

[effects]
db = { allow = ["events:insert"] }   # anything else → compile error

[contract]
pure_core    = "Events.Nodes.Persist.transform/2"   # decides
effect_shell = "Events.Nodes.Persist.execute/2"     # acts

Projects

Repo What it is Status
bloccs The library: TOML manifest parser → schema/effect validator → Broadway supervision-tree compiler, with a mix bloccs.* CLI and structural coverage. Hex · Docs Apache-2.0, pre-1.0
bloccs_web An observe-only Phoenix LiveView dashboard for running bloccs networks — live topology, per-node throughput/latency/error rate, message-flow feed, and coverage. Mounts with one router macro. Hex · Docs Apache-2.0, pre-1.0

Status & scope

Experimental — early and moving fast. The public API and the manifest format may change between releases, and bloccs isn't durable: put Oban or a broker at the edges for work that must survive restarts. Great for exploring and prototyping — pin a version and read the CHANGELOG before upgrading.

bloccs runs typed, supervised, back-pressured dataflow inside a process; it is not a durable workflow/orchestration engine and does not try to be.

Follow the build

The work happens in public — demos, build-in-public, and feature walkthroughs:

Apache-2.0. Built on Elixir, Broadway, and GenStage.

Popular repositories Loading

  1. conveyer conveyer Public archive

    Conveyer is a library for building Flow-Based Programming applications.

    Elixir 3

  2. bloccs bloccs Public

    A typed declarative IR for Agentic Computation Graphs (ACGs) that compiles to a Broadway supervision tree on the BEAM.

    Elixir 1

  3. espec espec Public archive

    Forked from antonmi/espec

    Elixir Behaviour Driven Development

    Elixir

  4. crimson_commerce crimson_commerce Public archive

    Umbrella app for Crimson Commerce

    Elixir

  5. bloccs_web bloccs_web Public

    A self-hosted, real-time dashboard for running bloccs networks — topology, live metrics, and coverage, mounted into your Phoenix app.

    JavaScript

  6. .github .github Public

    Bloccs org profile + community health files

Repositories

Showing 6 of 6 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…