=============
Compatibility
=============

Grouping
========

APIs
----

* :py:meth:`~tooz.coordination.CoordinationDriver.watch_join_group`
* :py:meth:`~tooz.coordination.CoordinationDriver.unwatch_join_group`
* :py:meth:`~tooz.coordination.CoordinationDriver.watch_leave_group`
* :py:meth:`~tooz.coordination.CoordinationDriver.unwatch_leave_group`
* :py:meth:`~tooz.coordination.CoordinationDriver.create_group`
* :py:meth:`~tooz.coordination.CoordinationDriver.get_groups`
* :py:meth:`~tooz.coordination.CoordinationDriver.join_group`
* :py:meth:`~tooz.coordination.CoordinationDriver.leave_group`
* :py:meth:`~tooz.coordination.CoordinationDriver.delete_group`
* :py:meth:`~tooz.coordination.CoordinationDriver.get_members`
* :py:meth:`~tooz.coordination.CoordinationDriver.get_member_capabilities`
* :py:meth:`~tooz.coordination.CoordinationDriver.update_capabilities`

Driver support
--------------

.. list-table::
   :header-rows: 1

   * - Driver
     - Supported
   * - :py:class:`~tooz.drivers.consul.ConsulDriver`
     - Yes
   * - :py:class:`~tooz.drivers.etcd.EtcdDriver`
     - No
   * - :py:class:`~tooz.drivers.file.FileDriver`
     - Yes
   * - :py:class:`~tooz.drivers.ipc.IPCDriver`
     - No
   * - :py:class:`~tooz.drivers.memcached.MemcachedDriver`
     - Yes
   * - :py:class:`~tooz.drivers.mysql.MySQLDriver`
     - No
   * - :py:class:`~tooz.drivers.pgsql.PostgresDriver`
     - No
   * - :py:class:`~tooz.drivers.redis.RedisDriver`
     - Yes
   * - :py:class:`~tooz.drivers.zake.ZakeDriver`
     - Yes
   * - :py:class:`~tooz.drivers.zookeeper.KazooDriver`
     - Yes

Leaders
=======

APIs
----

* :py:meth:`~tooz.coordination.CoordinationDriver.watch_elected_as_leader`
* :py:meth:`~tooz.coordination.CoordinationDriver.unwatch_elected_as_leader`
* :py:meth:`~tooz.coordination.CoordinationDriver.stand_down_group_leader`
* :py:meth:`~tooz.coordination.CoordinationDriver.get_leader`

Driver support
--------------

.. list-table::
   :header-rows: 1

   * - Driver
     - Supported
   * - :py:class:`~tooz.drivers.consul.ConsulDriver`
     - No
   * - :py:class:`~tooz.drivers.etcd.EtcdDriver`
     - No
   * - :py:class:`~tooz.drivers.file.FileDriver`
     - No
   * - :py:class:`~tooz.drivers.ipc.IPCDriver`
     - No
   * - :py:class:`~tooz.drivers.memcached.MemcachedDriver`
     - Yes
   * - :py:class:`~tooz.drivers.mysql.MySQLDriver`
     - No
   * - :py:class:`~tooz.drivers.pgsql.PostgresDriver`
     - No
   * - :py:class:`~tooz.drivers.redis.RedisDriver`
     - Yes
   * - :py:class:`~tooz.drivers.zake.ZakeDriver`
     - Yes
   * - :py:class:`~tooz.drivers.zookeeper.KazooDriver`
     - Yes

Locking
=======

APIs
----

* :py:meth:`~tooz.coordination.CoordinationDriver.get_lock`

Driver support
--------------

.. list-table::
   :header-rows: 1

   * - Driver
     - Supported
   * - :py:class:`~tooz.drivers.consul.ConsulDriver`
     - Yes
   * - :py:class:`~tooz.drivers.etcd.EtcdDriver`
     - Yes
   * - :py:class:`~tooz.drivers.file.FileDriver`
     - Yes
   * - :py:class:`~tooz.drivers.ipc.IPCDriver`
     - Yes
   * - :py:class:`~tooz.drivers.memcached.MemcachedDriver`
     - Yes
   * - :py:class:`~tooz.drivers.mysql.MySQLDriver`
     - Yes
   * - :py:class:`~tooz.drivers.pgsql.PostgresDriver`
     - Yes
   * - :py:class:`~tooz.drivers.redis.RedisDriver`
     - Yes
   * - :py:class:`~tooz.drivers.zake.ZakeDriver`
     - Yes
   * - :py:class:`~tooz.drivers.zookeeper.KazooDriver`
     - Yes
