0

I'm currently designing a new product and want to go the Microservice-way. Since I was completely new to this topic, I read most parts of the eBook .NET Microservices: Architecture for Containerized .NET Applications.

I like the way they do it in the ebook, so my architecture looks similar to the one described in the book:

  • The Microservices are hidden behind a gateway
  • No dependencies between the services
  • Event Bus for data propagation
  • ...

So far so good. But now I thought about the following scenario:

Let's say we are in the context of the eShopOnContainers. The application is running for some months, so there are some registered users, there are lots of products that are offered, and so on. Each time a new user account or a product was created, the corresponding integration event was fired, and each service interested in the information now has it in its own database.
Now I want to introduce a new microservice. This new service also needs some information about e.g. the users. But when I deploy it into the existing infrastructure, it doesn't know anything, because he didn't see the events of the past, of course.

So my question is: what is a good way to get the required data?

Do I have to shut down the whole system for some time, while I migrate the data from the other services to the new one?

I currently can't see a better way.

timnot90
  • 351
  • 1
  • 13
  • 2
    A similar question was asked earlier and it has an accepted answer. Pleaae refer to this: https://stackoverflow.com/q/55112973/1235935 – Saptarshi Basu Mar 27 '19 at 15:44
  • 1
    Thanks @SaptarshiBasu. Your reference led me to a (in my opinion) acceptable solution. I am using RabbitMQ as my message broker, which does not offer the possibility to replay messages. But during my researches I found the following question: https://stackoverflow.com/questions/29645842/rabbitmq-designing-a-message-replay-service. The question itself describes the solution I was looking for. – timnot90 Mar 29 '19 at 08:30

0 Answers0