Our application will integrate as a consumer into a bunch of external systems.
Most of these integrations are more than just message processing and routing. There is a lot of complex logic, for example, maintaining the current state, planned executions, and other things.
In addition, each integration does not have a common logic.
What is the best practice for creating such systems?
Should I build an all-in-one integration layer? It can be a monolithic application with different routes and apache processors for each integration: 
Or should I split it up into a bunch of tiny and simple standalone applications so that they can be scaled and deployed independently?

What advantages and disadvantages can I get with every solution?
source share