finds.dev← search

// the find

moby/swarmkit

★ 3,615 · Go · Apache-2.0 · updated Jun 2026

A toolkit for orchestrating distributed systems at any scale. It includes primitives for node discovery, raft-based consensus, task scheduling and more.

SwarmKit is the orchestration engine that powers Docker Swarm mode — it handles Raft consensus, task scheduling, mTLS cluster membership, and service reconciliation. If you're building something that needs distributed container orchestration without pulling in the full Kubernetes stack, this is the Go library underneath Docker's own implementation. It's not a standalone product you'd deploy; it's a toolkit you'd embed or learn from.

Raft implementation is production-tested at scale and includes TLS certificate auto-rotation — the CA management code is genuinely well-thought-out, not bolted on. The design docs in `/design/` are unusually good: there's actual TLA+ specs for the task model and worker behavior, which tells you the core invariants were formally reasoned about. The executor interface is cleanly abstracted, so swapping out the Docker container runtime for something else is architecturally supported. CSI volume support was added without gutting the existing task model — the plugin manager lives in its own subtree and doesn't bleed into the scheduler.

This is effectively a read-only artifact of Docker Swarm mode — it's not an independent project with its own roadmap. New features land here only when Docker Swarm needs them, so don't expect active API evolution. The scheduler only ships a spread strategy; there's no bin-packing or priority-based scheduling, and adding one means understanding the entire filter pipeline. The README still says 'Go 1.6 or higher' which is laughably stale (Go 1.6 was released in 2016) — a sign that documentation maintenance isn't a priority. No horizontal pod autoscaling or event-driven scaling primitives; if you need that, you're writing it yourself on top of the reconciliation loop.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →