added checking of result when building demos
[urisagit/Stem.git] / Design / arch_notes
CommitLineData
4536f655 1 Stem Architecture Notes
2
3Stem is a network application development toolkit and a suite of network
4applications. Its goal is to transform common network tasks from
5programming to configuration and to make solving difficult network tasks
6much easier.
7
8A running Stem system on a network consists of one or more
9interconnected Stem daemons which are called Hubs. Each Hub contains a
10collection of modules and objects which are called Cells. Stem Cells are
11capable of sending and receiving messages to any other Cell in the Stem
12system. Modules and Cells are loaded or created in a Hub by using
13configuration files. Configurations can be loaded and sent to any
14connected Hub where they will be executed.
15
16Stem's core set of modules provide all of the common operations needed
17including message passing, interprocess communication, asynchronous
18buffered I/O, socket connections and timers. Other modules which can be
19loaded and configured, perform such tasks as process creation and
20management, log file management, gateways, protocol support, message
21switching, etc...
22
23Configuring Stem Cells has been designed for simplicity and
24flexibilty. All Cells use a common style of attribute/value pair
25arguments with well chosen default values which make common situations
26easier to configure. Many example configuration files come with Stem as
27well as demonstration scripts which run working applications such as
28inetd emulation, log file transferring and chat servers.
29
30Stem Messages are how Cells communicate with each other. Their names
31are an ordered triplet: Hub, Cell and Target. Each Cell registers itself with
32a unique name and optional Target name in its Hub. All Hub names in a
33Stem system must be unique too, which makes the address triplet
34sufficient for any Message to be directed to any Cell.
35
36For more detailed information on the architecture and design of Stem,
37read the other technical notes.