T
- The saga typepublic interface SagaStore<T>
T
from an underlying storage like a
database.Modifier and Type | Interface and Description |
---|---|
static interface |
SagaStore.Entry<T>
Interface describing a Saga entry fetched from a SagaStore.
|
Modifier and Type | Method and Description |
---|---|
void |
deleteSaga(Class<? extends T> sagaType,
String sagaIdentifier,
Set<AssociationValue> associationValues)
Deletes a Saga with given
sagaType and sagaIdentifier and all its associations. |
Set<String> |
findSagas(Class<? extends T> sagaType,
AssociationValue associationValue)
Returns identifiers of saga instances of the given
sagaType that have been associated with the given
associationValue . |
void |
insertSaga(Class<? extends T> sagaType,
String sagaIdentifier,
T saga,
Set<AssociationValue> associationValues)
Adds a new Saga and its initial association values to the store.
|
<S extends T> |
loadSaga(Class<S> sagaType,
String sagaIdentifier)
|
void |
updateSaga(Class<? extends T> sagaType,
String sagaIdentifier,
T saga,
AssociationValues associationValues)
Updates a given Saga after its state was modified.
|
Set<String> findSagas(Class<? extends T> sagaType, AssociationValue associationValue)
sagaType
that have been associated with the given
associationValue
.sagaType
- The type of the returned sagasassociationValue
- The value that the returned sagas must be associated with<S extends T> SagaStore.Entry<S> loadSaga(Class<S> sagaType, String sagaIdentifier)
SagaStore.Entry
instance with given sagaType
and unique sagaIdentifier
.
Due to the concurrent nature of Sagas, it is not unlikely for a Saga to have ceased to exist after it has been
found based on associations. Therefore, a repository should return null
in case a Saga doesn't
exists, as opposed to throwing an exception.
sagaType
- The type of the returned saga entrysagaIdentifier
- The unique identifier of the returned saga entrynull
if no such saga existsvoid deleteSaga(Class<? extends T> sagaType, String sagaIdentifier, Set<AssociationValue> associationValues)
sagaType
and sagaIdentifier
and all its associations. For convenience
all known association values are passed along as well, which has the advantage that the saga store is not
required to keep an index of association value to saga identifier.sagaType
- The type of saga to deletesagaIdentifier
- The identifier of the saga to deleteassociationValues
- The known associations of the sagavoid insertSaga(Class<? extends T> sagaType, String sagaIdentifier, T saga, Set<AssociationValue> associationValues)
token
may be null
if the Saga is not tracking the event store.sagaType
- The type of the SagasagaIdentifier
- The identifier of the Sagasaga
- The Saga instanceassociationValues
- The initial association values of the Sagavoid updateSaga(Class<? extends T> sagaType, String sagaIdentifier, T saga, AssociationValues associationValues)
token
may be null
if the Saga is not tracking the
event store.sagaType
- The type of the SagasagaIdentifier
- The identifier of the Sagasaga
- The Saga instanceassociationValues
- The initial association values of the SagaCopyright © 2010–2020. All rights reserved.