I have one frontend that's communicating with a main backend that is in turn using services A & B, using gRPC call-response calls. A and B are each responsible for a hardware component they interact with do to some work. Periodically, both hardware components will change statuses, and these statuses need to be forwarded to the frontend.
To solve this, we have 2 ways in our team we are discussing:
I have a clear preference in number 2, but it seems very hard to convince colleagues of this approach. Maybe I am missing something, so for the sake of objectivity, I wonder what your thoughts are on either approach.
approach #2 seems to be the more reasonable. It would introduce less coupling between the services and increase the overall reliability. Semi-realtime updates can be achieved using a fast streaming service, like Kafka for example. I would use it instead of RabbitMQ as the latter has normally lower throughput due to extra processing in its routing system.