Over the past few years of working on multiple critical systems solution design initiatives, there is one important thing I have learnt.
" There is a reason we call it solution design and not system design". With the influx of cloud offerings and services, the organization no more rely on one system to automate the business process. Rather business process now relies on multiple systems performing a very specific step of the business process. All these systems are integrated to provide business process automation. This makes integration, not one of the factors but a very critical backbone of the business process."
Nothing that I said is new and no one will disagree but unfortunately, integrations are still given less priority and design thought.
I keep getting one question all the time " What are integration design best practices and how can I design a good reliable integration". I have a long list of to-dos for designing good integration but sometimes being too prescriptive is not useful as it hinders a thinking ability of an architect.
So if you are still reading and curious to know how to design a good integration than there is only one fact you need to be aware of, this will influence your design decision and push you to design better integrations.
AND THAT IS
Design with the above fact in mind and try to make your integration overcome failure and you will have a good design in place. Please don't spend time on developing integrations that will not fail. Such a design is purely a myth.
Now let's go one more level down, I have put down design pillars which will help to design the integration. These design pillars apply to any software development initiatives
if this is helpful, do leave our comment. I would love to hear your design learnings.