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:`pgd raft disable <pgd node upgrade>` ,Y,Y,Y
  :ref:`pgd raft disable <Conflicts>` ,Y,Y,Y
  :ref:`Statement-specific DDL replication concerns<Statement-specific DDL replication concerns>` ,Y,Y,Y
  :ref:`pgd raft disable <DDL locking details>` ,Y,Y,Y
  :ref:`pgd raft disable <Transaction streaming>` ,Y,Y,Y
  :ref:`pgd raft disable <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:`Group Commit<Group Commit>` ,N,Y,Y
  :ref:`pgd raft disable <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:`pgd raft disable <Monitoring the Connection Manager>` ,N,Y,Y
  :ref:`pgd raft disable <Conflicts>` ,N,Y,Y
  :ref:`pgd raft disable <Types of Conflict>` ,N,Y,Y
  :ref:`pgd raft disable <Conflict detection>` ,N,Y,Y
  :ref:`Support for Transparent Data Encryption (TDE)<Support for Transparent Data Encryption (TDE)>` ,N,15+,15+
