Ted Smith typeth: | My model does not attempt to guarantee that everyone has a copy. It | exploits the likelihood that friends have recently requested and cached | their friend's data. This is possible to do in a monolithic program - if
I'm still sceptic of the "pull" approach and prefer to think at least all online subscribers get events pushed in real-time. | I am [email protected], and you are [email protected], and I | request your profile data, or you push it to me, there's no reason I | can't cache it, and serve it to others if your node is down. Which is perfectly safe as there is plenty of cryptography in place to ensure the correctness of these operations. A one-to-many transmission would be numbered, signed by digital signature of the sender, then encrypted with the current encryption key of the group. Members of the group who were offline can ask other members of the group for a history catch-up. People should also be able to post to a group if the "owner" of the group is offline (comment her status update). | I am proposing that friends cache other friend's pages when they request | them; that way there is some level of redundancy in the network. In | either system you can just wait and try later. I wouldn't even start thinking in terms of pages. Social interactions are events within subscription groups. Events are packets. We need packets in groups to be numbered and decentralized. Every person has a group of subscribers, in fact she may have many groups of subscribers - those who care about her updates and those who only want her changes in contact information or rugby game results or now playing mp3 infos. Each of those is its own little multicast group with an identifier and a packet count. Once I am sure I have received all packets from all of my groups from wherever I could get them from, I can construct my own view of her profile or whatever else UI my social software finds intelligent and appropriate to show me. | This is a complex design, but I think overall, having the components | isolated along strictly defined interfaces will make implementing (and | changing) GNU Social much simpler. Si. -- ___ psyc://psyced.org/~lynX ___ irc://psyced.org/welcome ___ ___ xmpp:[email protected] ____ https://psyced.org/PSYC/ _____
