
EIP - Enterprise integration patterns
Interestingly I often notice a complete lack of knowledge towards this topic. I really suggest to everyone having a look into this book: Enterprise integration patterns. What functional programming is the bread and butter for an elixir developer this is the one for enterprise architects.
To give some flesh to this large topic I will give you some inputs.
​
Request-Reply. Most used by developers but seldom named as this. Let's take a typical WebApi. This is mostly request-reply. The execution context is IIS or some sort of a self-host webserver.
​
Publish-Subscribe Channel. Here it is possible to send a message to an endpoint and the message is sent to all subscribing consumers.
Invalid Message Channel. A receiver can not handle a delivered message and this invalid message should be dispatched to an invalid message channel.
​
Guaranteed Delivery. This ensures - even in case of a broker crash - that the message survives the restart and can be re-delivered afterwards.
​
Canonical Data Model. If there are various data formats in integrated applications - those specific data formats must be mapped to an indirection called the canonical data model.
​
And many many more.
​
When you start implementing the system typically you will also start developing some re-usable modules/packages/assemblies which manifest the EIPs you want to use in your architecture.