- First Release
- added support for Saga Instances
- Saga Actions
- Moved to Poetry
- Added actions for documentation
- Added Dependency injection Container use
- Completed Saga Manager
- Bugfixes
- Created SagaContext class
- Documentation improvement
- implemented getitem and setitem for SagaContext
- Completed the Saga process workflow implementation
- Bugfixes
- Completed the Compensation process
- Added Reply Command to Saga process
- Added update to common
- Bugfixes
- Now Sagas can be paused also on memory in addition to on disk.
- Improve SagaManager API.
- Add flag to return SagaExecution instances directly from SagaManager
- Support latest
minos-microservice-common
release (0.1.10
) - Change default
SagaManager
flags to (pause_on_disk=False, raise_on_error=True, return_execution=True
) - Enrich failed
CommandReply
instances with exception message. - Add
SagaRequest
andSagaResponse
.
- Deprecate
SagaManager.run
bySaga
names (the new approach is to directly pass theSaga
instance). - Remove
name
fromSaga
class. - Minor improvements.
- Fix troubles related with dependency injections.
- Remove file headers.
- Stop using
NoReturn
everywhere.
- Add
SagaStep.on_error
method to handle errored responses. - Integrate
SagaRequest
andSagaResponse
intoSagaOperation
definitions. - Rename
SagaStep
methods (invoke_participant
ason_execute
,on_reply
ason_success
,with_compensation
ason_failure
). - Enrich
SagaRequest
andSagaResponse
to be classes instead of simple constructor helpers. - Add
CommitExecutor
. - Rename
LocalExecutor
asExecutor
,OnReplyExecutor
asResponseExecutor
andPublishExecutor
asRequestExecutor
. - Simplify
SagaException
and heirs names.
- Add
ConditionalSagaStep
andConditionalSagaStepExecution
which allow to define conditional logic for steps within theSagaExecution
. - Add
LocalSagaStep
andLocalSagaStepExecution
classes which allow to execute local functions within theSagaExecution
. - Improve
SagaStep
andSagaStepExecution
class hierarchy. - Support dynamic
user
setup through aContextVar[Optional[UUID]]
variable. - Add
user
propagation fromSagaManager
toRequestExecutor
. - Improve
SagaContext
behaviour, allowing to dynamically change field types and also delete them as in anydict
instance.
- Add compatibility to
minos-microservice-common>=0.2.0
.
- Add
SagaService
class (containing the reply handling logic). - Add
transactional_command
middleware (to extend the saga transactionality to remote steps). - Add
TransactionCommitter
class with the responsibility to orchestrate the transaction commitment process of the saga. - Add
minos-microservice-networks
andminos-microservice-aggregate
as dependencies. - Be compatible with
minos-microservice-common=^0.3.0
- Integrate
minos.aggregate.transaction
intoExecutor
. - Replace
reply: CommandReply
byresponse: SagaResponse
. - Store
service_name: str
as part ofSagaStepExecution
metadata. - Deprecate callback argument on
Saga.commit
method in favor ofSaga.local_step
.
- Improve integration between
ConditionalSagaStep
andTransactionCommitter
- Add
SagaExecution.commit(...)
andSagaExecution.reject(...)
methods andautocommit: bool
andautoreject: bool
intoSagaExecution.execute(...)
andSagaExecution.rollback(...)
methods respectively. - Fix concurrent blocks related with a limited amount of
minos.networks.DynamicHandler
instances on theminos.networks.DynamicHandlerPool
.
- Take advantage of concurrent remote broker calls to improve the
TransactionCommiter
performance. - Expose
autocommit: bool = True
argument onSagaManager.run(...)
method. - Add support for
minos-microservice-networks=^0.3.0
.
- Fix bug related with empty
ConditionalSagaStep.from_raw
and emptyelse_then
.
- Fix bug related with
TransactionCommitter
andConditionalSagaStepExecution
.
- Fix bug related with
Transaction
scopes and sub-Saga
executions launched fromRemoteStep
calls - Add support for
minos-microservice-network~=0.3.1
.