Under-the-sheets Hermod uses TCP. Thus the idea is, if a connection is dropped mid-transmission the message is dropped. If a buffer is full, messages are dropped.
Technically I've heard it's possible for TCP to hand you corrupted data (it's pretty rare, but it could happen). In that case it is assumed that Fressian will throw an error on deserialization, in such a case the message will be discarded. I could add another level of corruption handling, but I haven't attempted this yet. So the gist of this all is: the system is no more reliable than TCP, and no less. So yes, manual acking is needed if you want to make sure a message arrives. But in my experience I've found it much easier to reason about a system that pushes acking into the app, than one that attempts to handle it at a lower level. This allows for per-message retry limits, fire-and-forget messages, sliding windows, or any other type of co-ordination desired. Timothy On Tue, May 13, 2014 at 1:04 PM, kovas boguta <[email protected]>wrote: > This is extremely cool! > > Some questions: > > 1. What, besides full buffers, would cause the message to be dropped? > 2. What is the practical limit on the size of messages? > > I'm trying to understand if manual ack'ing is necessary for say a > map-reduce type distributed application. > > If manual ack'ing is truly necessary, then the temptation is to make > the message size bigger so as to reduce the overhead. > > In general is hard to understand how its possible to guarantee > delivery of the parts of the message, but not of the message itself. > > thanks! > > > > > > > > > > > > > > > > On Fri, May 9, 2014 at 1:27 PM, Timothy Baldridge <[email protected]> > wrote: > > Although still in pre-1.0, I'm happy enough with a library I've been > working > > on to make an official release. > > > > Hermod is a network-aware message passing library built on core.async. > The > > details are best explained by the project's README: > > > > https://github.com/halgari/com.tbaldridge.hermod > > > > There are most likely some bugs still left, but give it a whirl and let > me > > know what you think. > > > > Thanks, > > > > Timothy Baldridge > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to [email protected] > > Note that posts from new members are moderated - please be patient with > your > > first post. > > To unsubscribe from this group, send email to > > [email protected] > > For more options, visit this group at > > http://groups.google.com/group/clojure?hl=en > > --- > > You received this message because you are subscribed to the Google Groups > > "Clojure" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to [email protected]. > > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to [email protected] > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- “One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.” (Robert Firth) -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
