eventuate-tram / eventuate-tram-core

Transactional messaging for microservices
Other
1.05k stars 186 forks source link

#144: Implemented reactive message and event consumers. Fixed #143: SpringReactiveMessageProducer needs to mirror MessageProducer and 142: ReactiveDomainEventPublisher needs to mirror DomainEventPublisher. #146: @Import(TramInMemoryConfiguration) requires @Import(EventuateTransactionTemplateConfiguration) #145

Closed dartartem closed 3 years ago

ddaeyongee commented 2 years ago

@cer @dartartem

Dear Chris Richardson, Artem Sidorkin I'm Taeyong, a software architect specialist working at LG CNS in Republic of South Korea.

As you know, LG CNS is working on an MSA-based next-generation tele-communication company (LG Uplus) project worth about 300 billion won. We set the topic publish-subscribe standard for this project as eventuate-cdc, and we are customizing some libraries to process transactions.

The version we are currently using is as follows. eventuateTramVersion 0.22.0.Release eventuateTramSagasVersion 0.11.0.Release

However, when subscribing to a topic and inserting it into the outbox table (received_messages), a Duplicate Entry SqlException is thrown due to a transaction issue. When I checked the issues, there were enhance histories related to EventuateTransactionTemplate , and we want to optimize it with 0.29.0.Release version to solve the problem.

If you have a more detailed explanation related to EventuateTransactionTemplate or ReactiveSqlTableBasedDuplicateMessageDetector, please share it, and if you have any tips on changing the version, please advise.

By using eventuate-cdc , it is very useful for processing large-scale transactions at the same time. Thank you for your hard work. I look forward to your reply.

Bye.

dartartem commented 2 years ago

@ddaeyongee

Hello Taeyong Kang,

I am sorry, but I am not sure that I understand the problem. The best thing in our case is creating issue, I think. It would be great if you create it and specify exact problem:

What you actually do? What data/API/method calls do you use? What is expected behavior? What is actual behavior?

You could also create some repo with minimal project that reproduces the problem and attach reference to the issue.

-- best regards, Artem Sidorkin