Thanks for the reply.
Yes, in case of this application where user saved in the notification service database would have only id, but if it had first_name also saved, then it would use local outdated version. Maybe then you shouldn’t keep first_name in notification service database, but that was not the case. What is the user gets removed?
Well, now I know, how it works and where I made a mistake. I thought that when event user_removed is dispatched then it’s only being delivered to currently listening applications. Turns out that if notification service registers to rabbitmq exchange, and then goes down, that message will be queued and will wait until service works again and can handle that event.
That ensures that after a given time everything will become consistent. I just didn’t have enough knowledge of rabbitmq / event exchange and queuing mechanism