Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
Story about feedback loops needs data. Data can be collected automatically by the systems. These metrics are describing how the user is using the services. This is of course specific to each service and they define their own metrics.
There can be common metrics between systems and these can be documented in this standard.
Collection of data happens by the services. But the data must be accessible for services which are analyzing the data. This can be the same service of course, but it would be much better to share the data system wide. This way all services can see how the user is moving between services in the whole system. This data could even be open.
Different methods and other thoughts:
Each service collects and stores the data themselves and then periodically publishes the data to central repository. Data is then queried back from central repository to services which need it. Central repository behaves like a cache for the data and it is stored there for only certain amount of time.
Each service collects the data and pushes it to central repository in realtime. Central repository works as a publish/subscribe message bus and publishes the data to all listening parties. Data is not stored in the repository.
Each service has common API which everyone else can use to query for data. There would be retention policies how long the data must be accessible in the API.
As a personal opinion I like all of them. They are not mutually exclusive and we could define the central repository to: