Services

Introduction
OpenSimulator can be conceptually divided into the simulator itself (the part that handles objects and avatars in the scene, physics, terrain, etc.) and a set of services (assets, inventory, etc.) that handle grid-wide data storage and retrieval. Data specific to an individual simulator (e.g. object positions, prim inventory contents) is stored at the simulator itself.

In standalone configuration both simulator and services run in the same process (OpenSim.exe). In grid mode, each simulator runs in a separate process (OpenSim.exe) and they connect to one or more ROBUST shells (Robust.exe) or an alternative service implementation that host the services. See Configuration for a diagrammatic view.

Every service is stateless - in other words, individual requests have no relationship to each other so can be load-balanced to multiple copies of a particular service (e.g. inventory).

Most services are grid services (i.e. every simulator connects to them in a hub-spoke pattern). However, some services (simulator services) are implemented by each simulator where one simulator needs to request data from another (e.g. land data).

Grid Services
Here is a table of each grid service in OpenSimulator and its function. All service interfaces are in the package OpenSim.Services.Interfaces. See Database:Documentation for more information on the database tables that back these services.

Simulator Services
Here is a table of each simulator service in OpenSimulator and its function. All service interfaces are in the package OpenSim.Services.Interfaces.