Interface EventStore

All Known Implementing Classes:
EventStoreGeneric, TimestampBasedEventStore

public interface EventStore
Represents an event store, which can be used to store events. The amount of events store depends on the implementation and is hidden from the callers.
Since:
2.2
  • Method Details

    • getCurrentEventToken

      String getCurrentEventToken(List<Long> directoryIds)
      Returns a token that can be used for querying events that have happened after the token was generated.

      If the event token has not changed since the last call to this method, it is guaranteed that no new events have been received.

      The format of event token is implementation specific and can change without a warning.

      Parameters:
      directoryIds - the ids of directories that the token should include events for
      Returns:
      token that can be used for querying events that have happened after the token was generated.
    • getNewEvents

      @Deprecated Events getNewEvents(String eventToken, List<Long> directoryIds) throws EventTokenExpiredException
      Deprecated.
      Returns an events object which contains a new eventToken and events that happened after the given eventToken was generated.

      If for any reason event store is unable to retrieve events that happened after the event token was generated, an EventTokenExpiredException will be thrown. The caller is then expected to call getCurrentEventToken(List) again before asking for new events.

      Parameters:
      eventToken - event token that was retrieved by a call to getCurrentEventToken(List) or getNewEvents(String, List)
      directoryIds - the ids of directories to retrieve events for
      Returns:
      events object which contains a new eventToken and events that happened after the given eventToken was generated.
      Throws:
      EventTokenExpiredException - if events that happened after the event token was generated can not be retrieved
    • getNewEvents

      Events getNewEvents(String eventToken, Application application) throws EventTokenExpiredException
      Returns an events object which contains a new eventToken and events that happened after the given eventToken was generated.

      If for any reason event store is unable to retrieve events that happened after the event token was generated, an EventTokenExpiredException will be thrown. The caller is then expected to call getCurrentEventToken(List) again before asking for new events.

      Parameters:
      eventToken - event token that was retrieved by a call to getCurrentEventToken(List) or getNewEvents(String, List)
      application - the application to retrieve events for
      Returns:
      events object which contains a new eventToken and events that happened after the given eventToken was generated.
      Throws:
      EventTokenExpiredException - if events that happened after the event token was generated can not be retrieved
    • storeOperationEvent

      void storeOperationEvent(OperationEvent event)
      Stores the given event. Implementations MIGHT limit the amount of events stored, and MIGHT not store the event at all if it can be recreated by other means.
      Parameters:
      event - event to be stored
    • handleApplicationEvent

      void handleApplicationEvent(Object event)
      Notifies the store that an application event happened that might make it impossible to recreate the event stream. Depending on the implementation the store MIGHT remove all relevant events, or mark them as invalid. After the call the store MUST NOT present an event stream that might not be valid as a result of the event.
      Parameters:
      event - the atlassian-events event triggering the action