Let’s say I had a few microservices in different repositories and they communicated over HTTP using JSON. Some services are triggered directly by other microservices, but others can be triggered by events like a timer going off, a file being dropped into a bucket, a firewall rule blocking X amount of packets and hitting a threshold, etc.
Is there a way to document the microservices together in one holistic view? Maybe, how do you visualise the data, its schema (fields, types, …), and its flow between the microservices?
Bonus (optional) question: Is there a way to handle schema updates? For example generate code from the documentation that triggers a CI build in affected repos to ensure it still works with the updates.
I would create a Jenkins task that runs during deployment that does whatever magical thing that updates your central index. That’s going to be implementation-dependent. I once worked on a custom workflow and documentation repository that did basically this, but I don’t have more info because I was only there a few weeks before getting moved to the contract I had actually been hired for. It would’ve been more complicated because they had api preview docs for things still under development.
Point is it was a custom solution and I’m not aware of an existing product.
I don’t mind using multiple compatible technologies. OpenAPI for services and something else that consumes an OpenAPI JSON or even JSON Schema to connect the different projects together and provide an overview.