» Protocol Compatibility Promise

We expect Serf to run in large clusters as long-running agents. Because upgrading agents in this sort of environment relies heavily on protocol compatibility, this page makes it clear on our promise to keeping different Serf versions compatible with each other.

We promise that every subsequent release of Serf will remain backwards compatible with at least one prior version. Concretely: version 0.5 can speak to 0.4 (and vice versa), but may not be able to speak to 0.1.

The backwards compatibility must be explicitly enabled: Serf agents by default will speak the latest protocol, but can be configured to speak earlier ones. If speaking an earlier protocol, new features may not be available. The ability for an agent to speak an earlier protocol is only so that they can be upgraded without cluster disruption.

This compatibility guarantee makes it possible to upgrade Serf agents one at a time, one version at a time. For more details on the specifics of upgrading, see the upgrading page.

» Protocol Compatibility Table

Version Protocol Compatibility
0.1 0
0.2 0, 1
0.3 0, 1, 2   see warning below
0.4 1, 2, 3   see warning below
0.5 2, 3, 4   see warning below
0.6 2, 3, 4   see warning below