A service is a flow you can interact with. That is, it receives requests, processes them, and returns a result of the processing.

A service in Flow Director always has a shell that provides the interface to the service. More about shells later in this chapter.

Flow as a Service

This is the most basic variant of a service. Create a flow, add a shell, and you can interact with the flow. It turns into a service. A service flow serves requests for the particular App.

REST as a Service

To expose a service as a REST service, you create the service flow first and add a shell. This makes the service independent from the actual usage. Then either make the shell REST aware or add a flow that works as a REST request handler on a route that you define through the Web API. This REST request handler then interacts with the service flow through the shell.

App as a Service

Instead of creating multiple services within the same app, use one app per service so that your business application consists of multiple independent services that interact with each other. A service app exposes its shell. To make it accessible from other apps, grant access from the System app.