Packages

trait SequencerService extends AbstractService

The service that a member can use to send messages to the domain and receive events from the domain

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SequencerService
  2. AbstractService
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def acknowledge(request: AcknowledgeRequest): Future[Empty]

    Allows a member to acknowledge that they have read all events up to and including the provided timestamp, and that they will never re-read these events again.

    Allows a member to acknowledge that they have read all events up to and including the provided timestamp, and that they will never re-read these events again. This information is currently only used for informational purposes and to provide a watermark for which it is safe to prune earlier events from the sequencer data stores. There is no requirement for every event to be individually acknowledged, and in fact callers are encouraged to only periodically record acknowledgements (at an interval of minutes is expected to be more than sufficient for pruning).

  2. abstract def acknowledgeSigned(request: SignedContent): Future[Empty]

    Newer version of acknowledgements.

    Newer version of acknowledgements. To be active for protocol versions >= 4. The argument here is an AcknowledgeRequest wrapped in SignedContent. The signature is checked on the server side to avoid that malicious sequencers create fake acknowledgements in multi-writer architectures where writers don't fully trust each other.

    Allows a member to acknowledge that they have read all events up to and including the provided timestamp, and that they will never re-read these events again. This information is currently only used for informational purposes and to provide a watermark for which it is safe to prune earlier events from the sequencer data stores. There is no requirement for every event to be individually acknowledged, and in fact callers are encouraged to only periodically record acknowledgements (at an interval of minutes is expected to be more than sufficient for pruning).

  3. abstract def downloadTopologyStateForInit(request: TopologyStateForInitRequest, responseObserver: StreamObserver[TopologyStateForInitResponse]): Unit

    Download the topology state for a member up to including the topology transaction that made the member known on the domain.

  4. abstract def sendAsync(request: SubmissionRequest): Future[SendAsyncResponse]

    Submit a send request to the sequencer for sequencing asynchronously.

    Submit a send request to the sequencer for sequencing asynchronously. The rpc request may return an error if the request cannot be processed at all - see SendAsyncResponse for these scenarios. The sequencer may emit a Deliver or DeliverError event from this send, if the subscriber witnesses an event greater or equal to the supplied maxSequencingTime, the sequencer guarantees not to publish a future Deliver event for this send. The sequencer implementation may however publish a future DeliverError (typically used to indicate maxSequencingTime exceeded). Used in protocol version 3

  5. abstract def sendAsyncSigned(request: SignedContent): Future[SendAsyncSignedResponse]

    Newer version of request submission (for authenticated members).

    Newer version of request submission (for authenticated members). To be active for protocol versions 4. The argument here is a SubmissionRequest wrapped in SignedContent. The signature is checked on the server side to avoid that malicious sequencers create fake submission requests in multi-writer architectures where writers don't fully trust each other.

    Submit a send request to the sequencer for sequencing asynchronously. The rpc request may return an error if the request cannot be processed at all - see SendAsyncResponse for these scenarios. The sequencer may emit a Deliver or DeliverError event from this send, if the subscriber witnesses an event greater or equal to the supplied maxSequencingTime, the sequencer guarantees not to publish a future Deliver event for this send. The sequencer implementation may however publish a future DeliverError (typically used to indicate maxSequencingTime exceeded).

  6. abstract def sendAsyncUnauthenticated(request: SubmissionRequest): Future[SendAsyncResponse]

    Submit a send request to the sequencer for sequencing asynchronously exactly like SendAsync, except that this meant to be used only by unauthenticated members for very specific operations that do not require authentication such as requesting that a participant's topology data gets accepted by the topology manager Used in protocol versions 3 and 4

  7. abstract def sendAsyncUnauthenticatedVersioned(request: SendAsyncUnauthenticatedVersionedRequest): Future[SendAsyncResponse]

    Submit a send request to the sequencer for sequencing asynchronously exactly like SendAsyncVersioned, except that this meant to be used only by unauthenticated members for very specific operations that do not require authentication such as requesting that a participant's topology data gets accepted by the topology manager

    Submit a send request to the sequencer for sequencing asynchronously exactly like SendAsyncVersioned, except that this meant to be used only by unauthenticated members for very specific operations that do not require authentication such as requesting that a participant's topology data gets accepted by the topology manager

    Used in protocol version 5 or higher

  8. abstract def sendAsyncVersioned(request: SendAsyncVersionedRequest): Future[SendAsyncSignedResponse]

    Submit a send request to the sequencer for sequencing asynchronously.

    Submit a send request to the sequencer for sequencing asynchronously. The rpc request may return an error if the request cannot be processed at all - see SendAsyncResponse for these scenarios. The sequencer may emit a Deliver or DeliverError event from this send. If the subscriber witnesses an event greater or equal to the supplied maxSequencingTime, the sequencer guarantees not to publish a future Deliver event for this send. The sequencer implementation may however publish a future DeliverError (typically used to indicate maxSequencingTime exceeded).

    The signature is checked on the server side to avoid that malicious sequencers create fake submission requests in multi-writer architectures where writers don't fully trust each other.

    Used in protocol version 5 or higher

  9. abstract def subscribe(request: SubscriptionRequest, responseObserver: StreamObserver[SubscriptionResponse]): Unit

    Establishes a stream with the server to receive sequenced events from the domain after the given counter.

    Establishes a stream with the server to receive sequenced events from the domain after the given counter. The delivered events will have a sequential counter and monotonically increasing timestamp. TBD: Message TTL - How far back should it go when the participant initiate a subscription ?

  10. abstract def subscribeUnauthenticated(request: SubscriptionRequest, responseObserver: StreamObserver[SubscriptionResponse]): Unit

    Establishes a stream with the server to receive sequenced events exactly like Subscribe, except that this is supposed to be used only by unauthenticated members similarly to SendAsyncUnauthenticated

  11. abstract def subscribeUnauthenticatedVersioned(request: SubscriptionRequest, responseObserver: StreamObserver[VersionedSubscriptionResponse]): Unit

    Same as SubscribeUnauthenticated(SubscriptionRequest) but delivers byte array rather than typed message to support multiple versions.

  12. abstract def subscribeVersioned(request: SubscriptionRequest, responseObserver: StreamObserver[VersionedSubscriptionResponse]): Unit

    Same as Subscribe(SubscriptionRequest) but delivers byte array rather than typed message to support multiple versions.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  14. def serviceCompanion: ServiceCompanion[SequencerService]
    Definition Classes
    SequencerService → AbstractService
  15. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  18. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
    Deprecated

Inherited from AbstractService

Inherited from AnyRef

Inherited from Any

Ungrouped