Interface SequencingPolicy<T>

Type Parameters:
T - The type of object representing the processing instruction for the event.
All Known Implementing Classes:
FullConcurrencyPolicy, MetaDataSequencingPolicy, PropertySequencingPolicy, SequentialPerAggregatePolicy, SequentialPolicy

public interface SequencingPolicy<T>
Interface to a policy definition for concurrent processing, for example event handling.

Some implementations are provided by default:

  • SequentialPolicy: Requires that all tasks are handled in the order they arrive at the processor. This also means that at most 1 thread is processing tasks for this processor at any time.
  • FullConcurrencyPolicy: Allows each tasks to be handled independently of any other tasks. Tasks processing will typically start in the same order the tasks were scheduled in, although no guarantees can be given about the actual processing order.
  • SequentialPerAggregatePolicy: Default policy. Will force events (only supports Event Handling tasks) generated by the same aggregate to be handled sequentially. At most one thread will be processing events of a single aggregate at any time
Since:
0.3
Author:
Allard Buijze
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the sequence identifier for the given event.
  • Method Details

    • getSequenceIdentifierFor

      Object getSequenceIdentifierFor(@Nonnull T event)
      Returns the sequence identifier for the given event. When two events have the same identifier (as defined by their equals method), they will be executed sequentially. A null value indicates that there are no sequencing requirements for the handling of this event.
      Parameters:
      event - the event for which to get the sequencing identifier
      Returns:
      a sequence identifier for the given event