Interface TransactionalSubscriber<V>

  • Type Parameters:
    V - The value handled by this subscriber
    All Superinterfaces:
    Subscriber<V>
    All Known Subinterfaces:
    Processor.Transactional<I,​O>, Processor.TransactionalIso<V>

    public interface TransactionalSubscriber<V>
    extends Subscriber<V>
    A subscriber that is transaction-aware. As opposed to standard Subscribers which receive simple value events, transactional subscribers receive a series of events: first, a beginTransaction, followed by a commit or rollback.

    A transactional subscriber will only be fully effective when controlled by a transaction-aware publisher. A transaction-aware publisher will roll back all subscribers if the transaction fails on any one subscriber, where a standard publisher will not.

    • Method Detail

      • submit

        default void submit​(V item)
        Description copied from interface: Subscriber
        Called to submit a new item
        Specified by:
        submit in interface Subscriber<V>
        Parameters:
        item - The item available
      • commit

        void commit()
        Expose a transaction's result

        This method will be called on all transactional subscribers in a system have received and validated any new data. Calling this method when a transaction is not in progress should result in a noop.

      • rollback

        void rollback()
        Called when a transaction has failed, to revert any prepared changes

        This event indicates that it is safe for clients to discard any prepared information from an in-progress transaction. If there is no transaction in progress, this must be a no-op.