Comcast / Comcast/sirius

PaxosStateBridge does not propagate SiriusResults from the RequestHandler

Open
#6 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.