Microservices ArchitectureEvent-Sourcerer Service, this service is responsible about applying event-sourcing for others services databases records, of course this services communicate with others using RabbitMQ and MassTransit.Message Consumers ( classes where each one responsible to consume/handle a specific Queue's messages ).EF Core with PostgreSQL as data persistence.Servie X published an Event that happened in it, and the Event Handler from that Service X will publish a copy of that event as a Message to RabbitMQ then the Consumers from the Event-Sourcerer Service will do their job by adding the message they are responsible for into the Event-Sources database.Deduplication mechanism as separated class called DatabaseMessageDeduplicationService you could take a look at it here : https://github.com/MbarkT3STO/ExpenovaApp/blob/main/Source/EventSourcererService/Services/DatabaseMessageDeduplicationService.csDatabaseMessageDeduplicationService is responsible about processing messages too. ProccessMessage as following:func/method from a consumer, that method consumer will contains the code to process the message and this DatabaseMessageDeduplicationService only invoking it.