Services

A Service is a container that exposes typed business logic across the network. It composes DSM definitions and one or more function pools — stateless FunctionPool and/or stateful AttachmentFunctionPool — into a single immutable bundle served over a socket.

Services are a Viper Runtime feature. The protocol communicates through the AttachmentMutating interface: stateful pool functions read and mutate whatever the client passes as their AttachmentMutating — a value, a structure, an in-memory container, or any other backend that implements the interface. The service mechanism itself does not persist anything and does not assume any particular storage tier.

Place in the ecosystem

  • Depends onDSM (the language used to declare function pools and the typed schemas they consume), dsviper and the Viper C++ engine (the runtime that registers pools, marshals values, and runs the RPC protocol).

  • Consumed by — any Python or C++ client that imports dsviper (Python) or links Viper (C++).

Topics