Choosing a Postgres distribution
================================

EDB Postgres Distributed can be deployed with three different Postgres
distributions: PostgreSQL, EDB Postgres Extended Server, or EDB Postgres
Advanced Server. The availability of particular EDB Postgres Distributed
features depends on the Postgres distribution being used. Therefore,
it’s essential to adopt the Postgres distribution best suited to your
business needs. For example, if having the Commit At Most Once (CAMO)
feature is mission critical to your use case, don’t adopt open source
PostgreSQL, which doesn’t have the core capabilities required to handle
CAMO.

The following table lists features of EDB Postgres Distributed that are
dependent on the Postgres distribution and version.

.. csv-table::
  :header: Feature,PostgreSQL,EDB Postgres Extended,EDB Postgres Advanced
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  :ref:`Rolling application and database upgrades <upgrades/>` ,Y,Y,Y
  :ref:`Eager <Conflicts>` ,Y,Y,Y
  :ref:`DDL replication filtering<DDL replication filtering>` ,Y,Y,Y
  :ref:`Eager <DDL locking details>` ,Y,Y,Y
  :ref:`Eager <Transaction streaming>` ,v14+,v13+,v14+
  :ref:`Eager <Global sequence management interfaces>` ,Y,Y,Y
  :ref:`Eager <Subscriber-only nodes and groups>` ,Y,Y,Y
  :ref:`Monitoring conflicts<Monitoring conflicts>` ,Y,Y,Y
  :ref:`Eager <OpenTelemetry integration>` ,Y,Y,Y
  :ref:`Parallel Apply<Parallel Apply>` ,Y,Y,Y
  :ref:`Eager <Conflict-free replicated data types>` ,Y,Y,Y
  :ref:`Enabling and disabling column-level conflict resolution<Enabling and disabling column-level conflict resolution>` ,Y,Y,Y
  :ref:`Transform triggers<Transform triggers>` ,Y,Y,Y
  :ref:`Conflict triggers<Conflict triggers>` ,Y,Y,Y
  :ref:`Asynchronous replication<Asynchronous replication>` ,Y,Y,Y
  :ref:`Legacy synchronous replication using PGD<Legacy synchronous replication using PGD>` ,Y,Y,Y
  :ref:`Group commit<Group commit>` ,N,Y,14+
  :ref:`Eager <Commit At Most Once>` ,N,Y,14+
  :ref:`Eager conflict resolution<Eager conflict resolution>` ,N,Y,14+
  :ref:`Lag Control<Lag Control>` ,N,Y,14+
  :ref:`Decoding Worker<Decoding Worker>` ,N,13+,14+
  :ref:`Eager <Monitoring through SQL>` ,N,Y,14+
  :ref:`Eager <Conflicts>` ,N,Y,14+
  :ref:`Eager <Conflicts>` ,N,Y,14+
  :ref:`Eager <Conflicts>` ,N,Y,14+
  :ref:`Transparent Data Encryption </tde/latest/>` ,N,15+,15+
