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:`Replicated large objects <pgd node upgrade>` ,Y,Y,Y
  :ref:`Replicated large objects <Conflicts>` ,Y,Y,Y
  :ref:`Statement-specific DDL replication concerns<Statement-specific DDL replication concerns>` ,Y,Y,Y
  :ref:`Replicated large objects <DDL locking details>` ,Y,Y,Y
  :ref:`Replicated large objects <Transaction streaming>` ,Y,Y,Y
  :ref:`Replicated large objects <Sequences>` ,Y,Y,Y
  :ref:`Subscriber-only nodes<Subscriber-only nodes>` ,Y,Y,Y
  :ref:`Monitoring Parallel Apply<Monitoring Parallel Apply>` ,Y,Y,Y
  :ref:`Parallel Apply<Parallel Apply>` ,Y,Y,Y
   `Conflict-free replicated data types (CRDTs) <https://www.enterprisedb.com/docs/pgd/latest/conflict-management/crdt/>`__ ,Y,Y,Y
  :ref:`Special problems for column-level conflict resolution<Special problems for 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:`SYNCHRONOUS COMMIT and GROUP COMMIT<SYNCHRONOUS COMMIT and GROUP COMMIT>` ,N,Y,Y
  :ref:`Replicated large objects <Commit At Most Once>` ,N,Y,Y
  :ref:`Eager conflict resolution<Eager conflict resolution>` ,N,Y,Y
  :ref:`LAG CONTROL<LAG CONTROL>` ,N,Y,Y
  :ref:`Decoding worker<Decoding worker>` ,N,Y,Y
  :ref:`Replicated large objects <Monitoring the Connection Manager>` ,N,Y,Y
  :ref:`Replicated large objects <Conflicts>` ,N,Y,Y
  :ref:`Replicated large objects <Types of Conflict>` ,N,Y,Y
  :ref:`Replicated large objects <Conflict detection>` ,N,Y,Y
  :ref:`Support for Transparent Data Encryption (TDE)<Support for Transparent Data Encryption (TDE)>` ,N,15+,15+
