Implementing federation with a subset of features


(César) #1

Hello dear Diaspora community,

I’m considering implementing Diaspora for a social network application that allows users that are registered with our services to communicate and send updates to followers. Since our application’s focus lies within notifying users of updates that occur within our network, it is not a full fledged social networking application and is likely to never become one.

For example, our application does not allow:

  • Styling of posts
  • Posts longer than 250 characters
  • Direct messaging of users (we have a different application on our network to handle that)
  • Just like on Facebook, comments on our application do not nest indefinitely. Once a user replies to the a reply, the reply is appended to it’s parent.

I’ve been looking into the different discussions and found two very interesting blog posts comparing Diaspora with ActivityPub, and the mention that Diaspora insists on very strict protocols for communication. Which I consider to be a very good approach, way superior to the idea behind AP. but I’d love to know if there’s the ability for the protocol to accept very minor dialogs of the protocol.

I’d like to know if there’s a piece of documentation on how to handle subset or supersets of the protocol.

  • Would the correct approach to implement federation respecting the protocol and just remove styling from the posts, and chop them to match the length of the posts that we provide and adding a link to the source post? How would this affect users who try to fetch the original post from my server? Should they even attempt to?
  • How do I inform the remote server that users do not accept direct messages? Should I just throw an error when the server receives a direct message? There seems to be no flag for the accepting of DMs on the profile.
  • How would I even start about implementing comments that are not nested while maintaining compatibility?
  • Is our application even a candidate for federating with diaspora pods?

Big thank you for your time and effort developing Diaspora and the underlying protocol,

C#