I know there are libraries for tracing requests in distributed systems based on OpenTracing and OpenTelemetry; these all work because the requests are connected/chained(microservices talking to each other). How to trace when systems/services are disconnected?
Service X calls Service Y. Y performs some processing then writes to a shared location . A component Z polls shared location(after hrs) and does processing.
I want to know if for each of the request generated by X, the status at each of these 3 systems.
A simple way to track this would be have a table and update DB Entries. However considering the fact that I might need to retry certain things, I had thought of introducing a workflow engine(Cadence) that opens up a workflow at Service X. Then at each of the Services the workflow is updated. If Request Reaches Y, a step in w/f is completed. If it does not reach Z the workflow is left open and after some time I could generate an Email etc. saying the workflow failed.
I need help in understanding if this is the right way and/or different methods to do this.