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 processor. A transaction-aware processor will roll back all subscribers if the transaction fails on any one subscriber, where a standard publisher will not.

    Since:
    4.0.0
    • 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.

        Since:
        4.0.0
      • 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.

        Since:
        4.0.0