Skip to content
tfnico edited this page Apr 10, 2012 · 2 revisions

Architecture

flurfunk architecture

Server

The server has three simple responsibilities:

  • Receive messages from clients
  • Provide messages to the clients
  • Message storage/access

We currently have only one server implementation: https://github.com/flurfunk/flurfunk-server

Clients

The clients can send and receive messages, and generally do a lot on top on the client-side (make URLs clickable, highlight replies, etc).

We have one web frontend here: https://github.com/flurfunk/flurfunk-web

We also have an OS X desktop application, but it will need some more cleanup before we can push it.

Bots

Bots are clients that are not used by people, but they use the same API as other clients. They can poll from data sources like:

  • Mail boxes
  • RSS feeds

.. and so on, to pick up messages like:

  • build notifications (from jenkins, etc)
  • commit notifications (from svn, git)
  • monitoring messages (from nagios)

At the time of writing this, we have only one bot:

https://github.com/flurfunk/flurfunk-camelbot

It pulls messages from a mailbox, and posts them into our flurfunk instance. It can also post messages received over IRC.

Since the camelbot is implemented using Apache Camel, it is very easy to extend with new routes making use of Camel's multitude of components (like posting new files arriving on an FTP server, RSS newsfeed, etc).

Clone this wiki locally