Feature compatibility
=====================

Server feature/commit scope interoperability
--------------------------------------------

Not all server features work with all commit scopes. This table shows
the ones that interoperate.

.. csv-table::
  :header: "",Async  <br><br>(default),:ref:`Parallel Apply<Parallel Apply>`,:ref:`Using with transaction streaming<Using with transaction streaming>`,:ref:`Decoding worker<Decoding worker>`
  :widths: 12,8,8,8,8
  :align: left
  :class: longtable

  :ref:`Group commit<Group commit>` ,Not applicable,Does not interoperate,Does not interoperate❗️,Combines
  :ref:`Commit At Most Once<Commit At Most Once>` ,Not applicable,Interoperates,Does not interoperate,Does not interoperate
  :ref:`Lag Control<Lag Control>` ,Interoperates,Interoperates,Interoperates,Interoperates
  :ref:`Synchronous Commit<Synchronous Commit>` ,Not applicable,Interoperates,Interoperates,Interoperates

Commit scope/commit scope interoperability
------------------------------------------

Although you can’t mix commit scopes, you can :ref:`combine rules <Commit scope rules>`  with an
``AND`` operator. This table shows where commit scopes can be combined.

.. csv-table::
  :header: "",:ref:`Group commit<Group commit>`,:ref:`Commit At Most Once<Commit At Most Once>`,:ref:`Lag Control<Lag Control>`,:ref:`Synchronous Commit<Synchronous Commit>`
  :widths: auto
  :align: left
  :class: longtable

  :ref:`Group commit<Group commit>` ,Not applicable,Does not combine ,Combines,Combines
  :ref:`Commit At Most Once<Commit At Most Once>` ,Does not combine ,Not applicable,Combines,Does not combine 
  :ref:`Lag Control<Lag Control>` ,Combines,Combines,Not applicable,Combines
  :ref:`Synchronous Commit<Synchronous Commit>` ,Combines,Does not combine ,Combines,Not applicable

Notes
^^^^^

Each commit scope implicitly works with itself.
