Service Configuration Repository (SCR) is a Kaa service that is responsible for distributing configurations to other Kaa services.
It is implemented using Spring Cloud Config and supports a variety of backends to fetch configuration from. The most common and recommended configuration backend is Git.
The following diagram summarizes the key interfaces that SCR supports to perform its functional role.
For inter-service communication, Kaa services mainly use REST APIs and messaging protocols that run over NATS messaging system.
Configuration data sourcing
When SCR sources the service configuration data from Git, it can be configured to listen for webhooks from GitLab or GitHub to read the updated service configuration data. If, for some reason, SCR cannot receive a webhook, you can trigger a configuration data reload by invoking its REST API.
Besides its own REST API, SCR also supports Spring Cloud Config Server API for configuration retrieval.
SCR uses Service Configuration Protocol (17/SCP) over NATS to broadcast configuration refresh events upon service configuration changes.