Distributed Micro Blogging (DMB)

Some scattered notes

Terms

  • Message - The atomic unit of the micro blog. A micro blog is an ordered stream of messages.
  • User - The owner of a micro blog (stream). Could be a person, group, machine, etc.
  • Public - Visible to everyone.
  • Private - Hidden from everyone.
  • bucket (also endpoint, queue, list) - A collection of messages.

notes

  • We can't avoid the fact that every post will have to be requested by every person who wants to see it, we can only prepare to return those posts that will be viewed most often (caching works here). #caching

  • The protocol should define a minimal, closed set of search operations, everything else is the responsibility of the FE. #protocol

  • Could public key encryption be used to implement privacy? i.e., we only share keys if you are my friend and I am your friend. This might get out of hand because I don't want you to see every private message I send, just the messages that are to you. #privacy

  • In addition to identification (OpenID?) and site or service authentication (OpenAuth?), there must be some form of reliable relationship proof. This is not a significant problem for Twitter because they have a single source of user and role information. In a distributed system, however, this could be tricky since by definition there is no central authority. #security

  • Messaging is the basis for DMB, not blogging. I am an endpoint, every msg I create goes to my endpoint (EP). Every public message I create goes to the public EP and the EPs of all my friends. Every private message I create goes only to the EP of my target. #protocol

  • Third-party features work from the public queue.

    LEVEL 0 "CORE": message passing, storage, retrival.

    LEVEL 1 "FEATURES": notification, search, replies (ad hoc message connections)

    LEVEL 2 "CLIENTS": Accessing the DMB system.

  • See the Gossip Architecture page for more information on one possible distributed system implementation.

changed July 1