moby/swarmkit

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

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 1 hour ago
Added to GitGenius on September 19th, 2026
Created on February 12th, 2016
Open Issues & Pull Requests: 275 (+0)
GitHub issues: Enabled
Number of forks: 676
Total Stargazers: 3,652 (+0)
Total Subscribers: 143 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.0 days
Mean response time: 461.0 days
90th percentile: 2173.9 days
Tracked items: 91

Most active contributors

Sign in to see contributor activity.

How this project is maintained

94% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 92% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 32
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,061 days
Stale 30+ days: 31
Stale 90+ days: 26

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • priority/P3 (5)
  • area/tests (4)
  • area/networking (3)
  • area/raft (3)
  • area/security (3)
  • priority/P2 (3)
  • area/agent (2)
  • area/docs (2)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

SwarmKit is a toolkit for orchestrating distributed systems at any scale, providing primitives for node discovery, raft-based consensus, task scheduling, and state reconciliation.

SwarmKit addresses the challenge of coordinating work across multiple machines without requiring external infrastructure or a single point of failure. It uses the Raft Consensus Algorithm to maintain agreement across manager nodes, with all node communication secured through mutual TLS that automates certificate issuance and rotation. The system organizes machines into a Swarm where nodes take on either worker or manager roles. Manager nodes accept service specifications and reconcile desired state with actual cluster state, while worker nodes execute tasks through pluggable executors. Services represent higher-level abstractions that group tasks, supporting both replicated services scaled to a desired replica count and global services that run on every available node. The tool continuously monitors the cluster and automatically reschedules tasks when nodes fail, with configurable restart policies that define conditions, delays, and retry limits.

SwarmKit suits operators building distributed systems who want orchestration without external databases or complex infrastructure dependencies. It works well for teams that need secure multi-node coordination out of the box and prefer operational simplicity. The default Docker Container Executor can be replaced with custom executors for different workload types. The toolkit's approach to updates is configurable, allowing operators to control parallelism and delay between task updates, enabling strategies from lockstep updates to gradual rolling deployments.

The project shows consistent maintenance with regular commits addressing core functionality and bug fixes. Development activity includes ongoing work on orchestration features, scheduling logic, and the consensus layer. The codebase receives updates to both the manager and worker node implementations, indicating active refinement of the distributed coordination mechanisms.