Loading...
client -> car placement service -> user data service-> payment service -> notification service -> analytics service
Note that if we want to maximize availability and scale, we can place queues in between each service. We can use Kafka, for example. Then we can have consumers at each service that process the Kafka messages at the rate the systems allow. This approach will ensure we can scale without problems and will prevent high throughput to take down the system.
Note that the car placement service should be called at entry and exit time.
Car entry:
Car exit: