2014-02-08 00:41:03 +00:00
---
layout: "docs"
2014-02-19 01:37:23 +00:00
page_title: "Consul Protocol Compatibility Promise"
2014-02-08 00:41:03 +00:00
sidebar_current: "docs-upgrading-compatibility"
2014-10-19 23:40:10 +00:00
description: |-
2015-02-17 19:29:00 +00:00
We expect Consul to run in large clusters of long-running agents. Because safely upgrading agents in this sort of environment relies heavily on backwards compatibility, we have a strong commitment to keeping different Consul versions protocol-compatible with each other.
2014-02-08 00:41:03 +00:00
---
# Protocol Compatibility Promise
2015-02-17 19:29:00 +00:00
We expect Consul to run in large clusters of long-running agents. Because
safely upgrading agents in this sort of environment relies heavily on backwards
compatibility, we have a strong commitment to keeping different Consul
versions protocol-compatible with each other.
2014-02-08 00:41:03 +00:00
2014-02-19 01:37:23 +00:00
We promise that every subsequent release of Consul will remain backwards
2014-02-08 00:41:03 +00:00
compatible with _at least_ one prior version. Concretely: version 0.5 can
2015-02-17 19:29:00 +00:00
speak to 0.4 (and vice versa) but may not be able to speak to 0.1.
2014-02-08 00:41:03 +00:00
2015-02-17 19:29:00 +00:00
Backwards compatibility is automatic unless otherwise noted. Consul agents by
2016-11-25 16:00:02 +00:00
default will speak the latest protocol but can understand earlier ones.
-> **Note:** If speaking an earlier protocol, _new features may not be available_ .
2014-02-08 00:41:03 +00:00
2015-02-17 19:29:00 +00:00
The ability for an agent to speak an earlier protocol is to ensure that any agent
can be upgraded without cluster disruption. Consul agents can be updated one
at a time, one version at a time.
For more details on the specifics of upgrading, see the [upgrading page ](/docs/upgrading.html ).
2014-02-08 00:41:03 +00:00
## Protocol Compatibility Table
< table class = "table table-bordered table-striped" >
2014-10-19 23:40:10 +00:00
< tr >
2017-10-09 21:18:37 +00:00
< th > Consul Version< / th >
2014-10-19 23:40:10 +00:00
< th > Protocol Compatibility< / th >
< / tr >
< tr >
2017-04-03 16:07:45 +00:00
< td > 0.1 - 0.3< / td >
2014-10-19 23:40:10 +00:00
< td > 1< / td >
< / tr >
< td > 0.4< / td >
< td > 1, 2< / td >
< / tr >
2015-01-25 21:59:30 +00:00
< tr >
< td > 0.5< / td >
< td > 1, 2. 0.5.X servers cannot be mixed with older servers.< / td >
< / tr >
2016-11-30 16:17:52 +00:00
< tr >
< td > 0.6< / td >
< td > 1, 2, 3< / td >
< / tr >
< tr >
2017-10-09 21:18:23 +00:00
< td > >= 0.7< / td >
2016-11-30 16:17:52 +00:00
< td > 2, 3. Will automatically use protocol > 2 when speaking to compatible agents< / td >
< / tr >
2014-02-08 00:41:03 +00:00
< / table >
2017-04-03 16:07:45 +00:00
-> **Note:** Raft Protocol is versioned separately, but maintains compatibility with at least one prior version. See [here ](https://www.consul.io/docs/upgrade-specific.html#raft-protocol-version-compatibility ) for details.