Phoenix Presence establishes a synthetic clock (tracking which sets of data incorporate other ones) and a truth maintenence system. So, it can used to maintain a "mostly correct" concensus on arbitrary data items across a distributed network of processing nodes.
This changes the rules (at least somewhat) on message reliavbility. As I understand it, Erlang makes no strong guarantees about delivery time, order, etc. However, Presence supplies a partial solution. It will be interesting to see what folks use it for. The authors have already proposed using it for user and session tracking and resource discovery. Other use cases seem likely, as developers find ways to solve problems using this approach. There may be some other low-hanging fruit that could be added in this area. For example, see the following extract from RFC 3453. -r The Use of Forward Error Correction (FEC) in Reliable Multicast ... This memo describes the use of Forward Error Correction (FEC) codes to efficiently provide and/or augment reliability for one-to-many reliable data transport using IP multicast. One of the key properties of FEC codes in this context is the ability to use the same packets containing FEC data to simultaneously repair different packet loss patterns at multiple receivers. ... -- https://www.ietf.org/rfc/rfc3453.txt ... -- http://www.cfcl.com/rdm Rich Morin [email protected] http://www.cfcl.com/rdm/resume San Bruno, CA, USA +1 650-873-7841 Software system design, development, and documentation -- You received this message because you are subscribed to the Google Groups "elixir-lang-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-talk/4FC1B48F-E7AF-41DF-AEF9-DAB68234EFFB%40cfcl.com. For more options, visit https://groups.google.com/d/optout.
