mithril
mithril copied to clipboard
Non blocking artifact production in aggregator
Why
We need to avoid blocking the signature of new open messages when the aggregator is computing the artifact for a signed entity type (an operation which can take up to several hours). In particular, this will help have a consistent certification of the Cardano transactions which is occurring at a faster pace.
What
Update the artifact production so that:
- The signed entity type is locked during the operation
- The signed entity type is unlocked when the operation terminates (success or failure)
- The computation of the artifact is done in a background thread
How
- [ ] Update the
SignedEntityService
create_artifact
function:- [ ] Make the computation in a separate task
- [ ] Return the task instead of unit
- [ ] Lock signed entity type
- [ ] Unlock signed entity type (when success or failure)
- [ ] Adapt the integration tests (if any problem occurs because of the background task)