The “concierge” service is responsible for orchestrating the backing persistence services and for performing authorization of commands and command responses.
It acts as a gatekeeper and entry point for other services providing APIs:
Those services do not need to be aware of authorization and routing of messages in the cluster.
Model
The concierge service has no model by its own, but uses the model of all the services it orchestrates.
Signals
The concierge service has no signals by its own, but uses the signals of all the services it orchestrates.
Persistence
The concierge service uses Akka persistence and with that Event sourcing in order to persist changes to and restore persisted batch commands.
Tasks
- accept any commands, command responses and events of all orchestrated services
- apply authorization to those, reply with authorization failures if the caller had no permission to execute a command
- delegate authorized commands/responses/events to the orchestrated services where they are processed