/* * Copyright (c) 2016, PostgreSQL Global Development Group * See the LICENSE file in the project root for more information. */ package com.amazon.redshift.replication.fluent; import com.amazon.redshift.replication.fluent.logical.ChainedLogicalCreateSlotBuilder; import com.amazon.redshift.replication.fluent.physical.ChainedPhysicalCreateSlotBuilder; /** * Fluent interface for specify common parameters for Logical and Physical replication. */ public interface ChainedCreateReplicationSlotBuilder { /** * Get the logical slot builder. * Example usage: *
* {@code
*
* pgConnection
* .getReplicationAPI()
* .createReplicationSlot()
* .logical()
* .withSlotName("mySlot")
* .withOutputPlugin("test_decoding")
* .make();
*
* RedshiftReplicationStream stream =
* pgConnection
* .getReplicationAPI()
* .replicationStream()
* .logical()
* .withSlotName("mySlot")
* .withSlotOption("include-xids", false)
* .withSlotOption("skip-empty-xacts", true)
* .start();
*
* while (true) {
* ByteBuffer buffer = stream.read();
* //process logical changes
* }
*
* }
*
* @return not null fluent api
*/
ChainedLogicalCreateSlotBuilder logical();
/**
* Create physical replication stream for process wal logs in binary form.
* *Example usage:
*
* {@code
*
* pgConnection
* .getReplicationAPI()
* .createReplicationSlot()
* .physical()
* .withSlotName("mySlot")
* .make();
*
* RedshiftReplicationStream stream =
* pgConnection
* .getReplicationAPI()
* .replicationStream()
* .physical()
* .withSlotName("mySlot")
* .start();
*
* while (true) {
* ByteBuffer buffer = stream.read();
* //process binary WAL logs
* }
*
* }
*
*
* @return not null fluent api
*/
ChainedPhysicalCreateSlotBuilder physical();
}