Description
Hello from Belarus! First of all thank you for you project and I also want to be friends with you!)
I have one question. In your blog you say, that one of disadvantages of monolith is that during horizontal scaling we need to deploy whole system, but monolith could be deployed in general. But if we look at your current implementation it could not be scaled at all because of processors (ProcessOutboxJob
for example). Am I right?
If I am right, do you have some proposition, how scaling could be achieved?
For example, we can move ProcessOutboxJob
to separate process. It can poll database and read outbox as it works now. Then we can scale rest of app. But when our ProcessOutboxJob
will publish events to some bus (RabbitMQ) and have multiple instances of apps, that consume this messages, we will lose message ordering, which is critical. So, this is bad solution. And, to be honest, I do not know what to do. I really have no idea how to scale apps, that use Outbox pattern. Or read sides of EventSourced systems, for example