Guaranteed Event-Delivery
-------------------------
Key: S4-41
URL: https://issues.apache.org/jira/browse/S4-41
Project: Apache S4
Issue Type: New Feature
Affects Versions: 0.5
Reporter: Karthik Kambatla
Assignee: Karthik Kambatla
Fix For: 0.5
>From Skype call on 1/24:
Guaranteed Event Delivery needs to be supported, but should be optional as it
is bound to have significant performance trade-offs. Essentially, the Sender
needs to be ACKed on successful/failed send of an event. In case of a failure
or unknown status (timeout), the Sender re-sends the Event.
Note: This JIRA is related to S4-37, the extent to which it is related needs to
be decided.
Should this be implemented at the application level (s4-core) or communication
level (s4-comm)?
-To implement it in the comm-layer, guaranteed message delivery (comm-layer)
should translate to guaranteed event delivery (app-level). Receiver uses a
blocking queue - thus, every message received is queued as an event (no
messages are dropped) unless in case of interruptions. Also, we can modify
Receiver to use a SynchronousQueue and have Listeners use ArrayBlockingQueue to
make sure that no messages are dropped even in case of interruptions.
-To implement it in the application-level, the Receiver should send an ACK to
the Sender. This entails the following (1) Receiver should know the Sender
details, (2) a special ACKEvent, (3) direct hand-shake between the Sender and
Receiver (like implementing our own TCP).
Given these circumstances, I feel the best way to achieve this is to (1)
guarantee message-delivery, and (2) ensure that translates to guaranteed
event-delivery.
Please comment.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira