PaxosStateBridge does not propagate SiriusResults from the RequestHandler
- Dominant language
- Scala
- Stars
- 296
- Forks
- 48
- PR merge metrics
- No merged PRs in 30d
Description
Currently, when the `PaxosStateBridge` receives a Paxos decision, it acks the update back to the originating client with a `SiriusResult.none()` before that update has been persisted or applied to the brain via the `RequestHandler`. This means there is no way to tell if an exception was thrown while trying to apply it, and there is no way to have a return value from the `RequestHandler`'s `enqueuePut` or `enqueueDelete` methods.
Possible solutions:
- Delay the ack at least until the update has been run through the `RequestHandler`, and reply with the return value of `handlePut`/`handleDelete`
- Change the `RequestHandler` interface so that `enqueuePut`/`enqueueDelete` return a `Future`, to make it clear there is no information being propagated out
Contributor guide
Assessment
This issue has not been assessed yet.