Skip to main content

Create a Service

Services run continuously as background processes. They are best-suited for implementing functionalities that need to be accessed by multiple other Assets (typically Skills or other Services). For example, a Service might provide motion planning functionality used by a Skill that moves a robot arm. Implementing that functionality as a Service promotes code modularity and reuse.

Services can be stateful or stateless depending on the needs of developers. Services can be used by Skills and other Services, and it is important to understand what this dependency means for practical application.

Services should be written in such a way that they are able to gracefully handle situations where their downstream dependencies are not yet available (e.g., during startup) or suddenly disappear during runtime if problems occur. For all practical purposes, the Intrinsic platform should be considered an eventually consistent system when it comes to running custom Services.