I’m considering an API which has a bulk update; if any of the updates fail, the request should fail, if they all succeed, request is OK.
I think a read-side is the most reactive way to do this. However, the issue with the read-side is there could be lag… so if the read-side believes all of the updates could happen but some number fail, there’s no real rollback mechanism
If I model my
FooEntity slightly differently, the rollback is no longer needed: instead of each
Foo being an entity, the service has an entity which holds
Foo objects within its state.
This feels much less reactive, but seems to solve the pervasive issue of Aggregates are Hard in Reactive Systems™. Are there other considerations?