Skip to content

tarungka/wire

Repository files navigation

Wire

License Go Version

Wire is a distributed stream processing engine written in Go. It targets unbounded data streams with strict correctness guarantees: exactly-once semantics, deterministic recovery, and strict event ordering. State lives in an embedded PebbleDB; checkpoints use Asynchronous Barrier Snapshots (Chandy–Lamport). Wire is designed to run as a single binary with no external dependencies.

Project status: pre-v0.1.0, alpha. The codebase underwent a full architectural rewrite (merged March 2026, PR #148). The engine, coordinator, and worker are in place; user-facing surfaces (configuration reference, Go SDK, REST API, connector SDK) are actively being specified under the WIP process. There are no built-in connectors yet.

Documentation

The canonical design docs live in docs/:

Doc Purpose
docs/vision.md Goals, non-goals, and design principles
docs/architecture.md Runtime topology, control plane, data plane
docs/execution-model.md Event/time/watermarks, checkpointing, backpressure
docs/state-backend.md Pebble integration, snapshot protocol
docs/operations.md Deployment modes, scaling, monitoring
docs/usage.md Build/run instructions and CLI flag reference
docs/trds/ Wire Improvement Proposals (WIPs) — design history and in-flight proposals

For a gap analysis against the current codebase, see docs/docs-todo.md. For the project roadmap, see ROADMAP.md.

Build

git clone https://github.com/tarungka/wire.git
cd wire
make build

This produces the wire binary in the project root. Go 1.24+ is required.

Run

Wire runs as a single binary in either coordinator or worker mode. See docs/usage.md for the full flag reference.

Coordinator (single-node):

./wire \
  --mode coordinator \
  --http-listen :4001 \
  --listen :4002 \
  --election-backend noop \
  --coordinator-data-dir data/coordinator

Worker:

./wire \
  --mode worker \
  --coordinator-addr localhost:4002 \
  --task-slots 4

Contributing

See CONTRIBUTING.md for development setup and contribution guidelines. Non-trivial changes should go through the WIP process.

License

MIT — see LICENSE.

About

Wire is a distributed open source stream processing framework with powerful stream and batch-processing capabilities.[UNDER DEVELOPEMENT]

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages