Skip to content
Aravind edited this page Jun 10, 2013 · 4 revisions

Overview

The Scrollback server is concerned with receiving, routing, sending, storing and retrieving messages. The codebase consists of:

  • Core, which handles the routing, storing and retrieval of messages
  • Gateways, which send and receive messages to external systems, like websockets-based clients, IRC and
  • Plugins, which perform custom actions during the routing stage.

The key entities in the data model are:

  • Messages, which are either normal human-readable messages or system-generated ones like "freeside has joined". Messages have 'from' and 'to' properties.
  • Rooms are the entities 'from' and 'to' which messages are sent. Rooms listen to each other: when a message is sent to a room, it may get forwarded to all its listeners. For routing purposes, each user has a home room (think of it as an inbox) which is also represented as a room.
  • Accounts are representations of external entities such as IRC channels, Facebook groups and email addresses. They contain the identifying and authorizing information used by gateways to send and receive messages to these external networks. Each account is linked to a single room, whose messages it sends and receives.
  • Labels are tags that are applied to messages to classify and sort them.

Documentation for the Scrollback Javascript client will be added later.

Clone this wiki locally