gale.org
Home > Documentation > for Developers > API@, Servers^, Clients^

Architecture

Servers

The Gale server network is responsible for accepting messages from clients, interpreting their categories, and delivering them to clients which have matching subscriptions. Servers use the Gale protocol to communicate with clients and other servers over the network.

As far as Gale servers are concerned, messages consist of an opaque binary blob attached to a set of categories. It is up to clients to generate and interpret the contents of messages. Servers do not participate in encryption or authentication; they offer only a content-neutral transport layer.

Clients

Gale clients act as user agents, exchanging messages with the server on behalf of the user, or occasionally acting as independent agents ("bots" and utilities). They are responsible for sending messages in a commonly understood format, and for interpreting messages they receive from other clients. Clients perform all encryption, authentication and key management.

Clients connect to a convenient local server and use it to send and receive all messages. The server network is a magic cloud, as far as they know.