Status
[2017-06-22] Work In Progress
Problem
- A Client
c sends a request r0 for a service offered by N different Servers
- Server
s handles r0 but network between c and s becomes unavailable before s is able to send the result of the request back to c.
c wants to know if r0 was completed or not by s and decide whether retry (in case r0 failed) with another Server y or get the result in case of success.
Proposal
s writes to the DHT (using put feature) the result p (success/payload or error) of r0. The hash of the request-id rid is used as identifier
c waits until r0 times out and searches the DHT (using get feature) for rid
- Case A:
c is able to retrieve p. If r was successful then c does nothing. If r was unsuccessful c then may decide to resubmit
- Case B:
c is NOT able to retrieve p. Either s crashed before being able to write p to the DHT or also DHT reachability for s is compromised. c notifies the application to manually inspect r and its result.
s may crypto-sign p to prove the authenticity
Advantages
- Use DHT storage as an asynchronous, fault tolerant and redundant system.
Notes
- Creating grenache services for ACK storage works too but it's transport-implementation specific
Status
[2017-06-22] Work In Progress
Problem
csends a requestr0for a service offered byNdifferent Serversshandlesr0but network betweencandsbecomes unavailable beforesis able to send the result of the request back toc.cwants to know ifr0was completed or not bysand decide whether retry (in caser0failed) with another Serveryor get the result in case of success.Proposal
swrites to the DHT (using put feature) the resultp(success/payload or error) ofr0. The hash of the request-idridis used as identifiercwaits untilr0times out and searches the DHT (using get feature) forridcis able to retrievep. Ifrwas successful thencdoes nothing. Ifrwas unsuccessfulcthen may decide to resubmitcis NOT able to retrievep. Eitherscrashed before being able to writepto the DHT or also DHT reachability forsis compromised.cnotifies the application to manually inspectrand its result.smay crypto-signpto prove the authenticityAdvantages
Notes