The core of the platform is the registry, this knows about every agent and service on the platform. An agent registers with the registry and also registers the services it creates. The registry monitors the status of agents and the services, informing all connected agents when any service disconnects from the platform.
An agent is used to create services and make connections to other services. A connection to a service is made by creating a proxy. The agent always goes to the registry to find the connection details for a service when creating a proxy.
A service is used to produce data. Data is represented in a record structure composed of key-value pairs. The keys are strings, the values are integral, decimal, string or binary data. As data changes, the changes are published to subscribers of the data. The subscribers are the proxies created by other agents. A service can also publish RPCs that allow proxies to invoke functions on the service.
Atomic Data Changes
A fundamental principle in the platform is atomic changes for data. Changes to the values of record fields are grouped together into a single change that is published as an ‘atomic change’. All subscribers receive this atomic change and this allows services to control the consistency of the changes that proxies will receive.