title: Integration architecture best practices for Enterprise applications
body: <p>Our application is going to integrate like a consumer to a bunch of external systems.</p>
  
  <p>Most of this integrations are not just message processing and routing. There are a plenty of complex logic, like storing a current state, scheduled executions and other stuff.</p>
  
  <p>Besides, each integration doesn't share much common logic.</p>
  
  <p>What is the best practice to build this kind of systems?</p>
  
  <p>Should I build all-in-one integration layer? It can be a monolithic application with different apache camel routes and processors for each integration:
  <a href="https://i.stack.imgur.com/hyqlh.png" rel="noreferrer"><img src="https://i.stack.imgur.com/hyqlh.png" alt="enter image description here"></a></p>
  
  <p>Or should i split it to a bunch of tiny and simple standalone apps so they can be scaled and deployed independently?</p>
  
  <p><a href="https://i.stack.imgur.com/0Mv8S.png" rel="noreferrer"><img src="https://i.stack.imgur.com/0Mv8S.png" alt="enter image description here"></a></p>
  
  <p>What benefits and drawbacks can i get with each solution?</p>