Open shurwit opened 2 years ago
@shurwit, this is great approach. I gave it a try in November with a real Kafka instance and it looked amazing. However there is bunch of configs that put some pressure on configuration complexity - if AWS resolve it then we're good.
One thing is the circular dependency according to the attempt to mix group BB & polls BB functionality and how we could resolve it? Message broker wouldn't be in help.
Also thanks for the pushing further this task! I think it will be in great help for long run and the upcoming complexity
As our ecosystem grows, we may need to consider additional communication channels between our back-send services. Specifically, message brokers are common tools used for reliable, asynchronous communication in microservice architectures.
Our philosophy until now has been to limit communication between services, however I do not believe this will be a sustainable strategy in the long run if we intend to continue using a microservice-type model. Interdependencies will continue to grow between our services, so in order to avoid inefficiencies, architectural complications, or tendencies towards monolithic services, I believe we should consider the benefits provided by such a system to augment our existing approach where appropriate.
At the moment, my understanding is that message brokers should be used when it is possible for services to communicate asynchronously. For example, if a request is received to create a new resource on one service, this service may notify other services about this new resource without waiting for a response from each one. Message brokers will not be helpful in serving requests that retrieve data across services, or need to immediately provide the result of an action across services. It is worth noting that it may be possible to avoid these types of synchronous communication in many cases with good design relying on asynchronous communication channels such as this.
In the situation described above, message brokers provide the following benefits:
Examples of cases where a message broker would be helpful:
335
Originally posted by @mdryankov in https://github.com/rokwire/core-building-block/issues/335#issuecomment-979298287