Comments on Enterprise Integration Patterns
The book Enterprise Integration Patterns []
(2003) by Gregor Hohpe and Bobby Woolf is largely about messaging in enterprise systems.
In the introduction it is stated that integration solutions have to deal with some fundamental
challenges such as unreliable networks, slow networks, multiple inhomogenous applications and
inevitable change.
The authors say developers have overcome the challenges of integration solutions using four main
approaches:
- File transfer
- Shared database : Multiple applications share the same database schema, located in a single physical database.
Becase there is no duplicate data storage, no data has to be transferred from one appliocation to the other
- RPC
- Messaging
The best approach isn't even mentioned: a replicated embedded database technology like CEDA.
This is vastly better in many ways:
- Data coherency - the in-process data which is the target of updates is never stale
- Concurrency - each replica can be updated independently and concurrently,
without distributed locks or optimistic concurrency control
- Data redundancy - data is replicated - usually on many physical machines, it's virtually impossible to lose data
- Causal consistency - operations are applied in an order which respects causality
- Partition tolerance - the network can partition in arbitary ways
- Availability - each node is available, regardless of whether other nodes go down or the network partitions
- Low latency - data is accessed in-process, there are no network round trips
- Performance - in-process data access allows for extremely high performance
- Simplicity of application code - applications are written like single user applications accessing in-memory data, yet they're multi-user
- Infallible data access - since access to data is in-process, it is infallible, unlike access over fallible networks
- Branching and merging - configuration management on the entire database
- Real-time interactive collaboration - users can see each other's edits in real time, e.g. as they type characters in a document
or move objects on a CAD drawing with the mouse
In fact data replication is hardly discussed in the whole book (according to the index only on pages 7 and 31).
It's roughly about 1 page out of 650!
Most of the book is about messaging. This is unfortunate given that application level messaging is mostly obsolete
when data replication is available.