Package org.postgresql.replication.fluent

# Interface ChainedStreamBuilder

All Known Implementing Classes:
  `ReplicationStreamBuilder`

public interface ChainedStreamBuilder
Start point for fluent API that build replication stream(logical or physical). Api not thread safe, and can be use only for crate single stream.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ChainedLogicalStreamBuilder`
  `logical()`
  Create logical replication stream that decode raw wal logs by output plugin to logical form.
  `ChainedPhysicalStreamBuilder`
  `physical()`
  Create physical replication stream for process wal logs in binary form.

- ## Method Details

  - ### logical

    ChainedLogicalStreamBuilder logical()
    Create logical replication stream that decode raw wal logs by output plugin to logical form. Default about logical decoding you can see by following link Logical Decoding Concepts .

    Example usage:

            PGReplicationStream stream =
                pgConnection
                    .getReplicationAPI()
                    .replicationStream()
                    .logical()
                    .withSlotName("test_decoding")
                    .withSlotOption("include-xids", false)
                    .withSlotOption("skip-empty-xacts", true)
                    .start();

            while (true) {
              ByteBuffer buffer = stream.read();
              //process logical changes
            }

    Returns:
      not null fluent api

  - ### physical

    ChainedPhysicalStreamBuilder physical()
    Create physical replication stream for process wal logs in binary form.

    Example usage:

            LogSequenceNumber lsn = getCurrentLSN();

            PGReplicationStream stream =
                pgConnection
                    .getReplicationAPI()
                    .replicationStream()
                    .physical()
                    .withStartPosition(lsn)
                    .withSlotName("test_decoding")
                    .withSlotOption("include-xids", false)
                    .withSlotOption("skip-empty-xacts", true)
                    .withStatusInterval(5, TimeUnit.SECONDS)
                    .withAutomaticFlush(true)
                    .start();

            while (true) {
              ByteBuffer buffer = stream.read();
              //process binary WAL logs
            }

    Returns:
      not null fluent api