Patterns are for People...Mostly
The patterns are made for human-to-human communications, Mr. Hohpe said. They are meant to be fuzzy around the corners. Essentially, they are sketches that say, “Here is the general shape that things take.” They are not blueprints. Instead each pattern describes the general shape that a thing takes. Mr. Hohpe further explained that collectively the patterns provide a catalog of solutions in which the patterns are mind-size chunks of knowledge with just enough information to teach a person.
At the same time, Mr. Hohpe noted that there is one area where patterns can serve as components: messaging. In fact, a number of tools have gone in this direction, working out better than he had thought possible. Mr. Hohpe attributed the ability to unify what are essentially apples and oranges to the simplicity of the pipes and filters model used with messaging patterns, which enables other languages to be embedded in the component. He advised that this probably could not be repeated outside of messaging patterns with their unique qualities.
New Patterns – Beyond Messaging
There was no magic number when he and co-author Bobby Woolf came up with 65 enterprise integration patterns, Mr. Hohpe recalled, and he noted that the focus then was on messaging. However, he has since been looking at three areas to expand the patterns beyond messaging: conversations, processes and events.
Messages are stateless, but if someone wants to have a conversation, there has to be a little bit of state, Mr. Hohpe explained. Then they need process patterns to maintain that state, and he noted that business process management has a lot of the elements required there. Finally, there are complex event processing and event-driven messaging, which can trigger specific actions or send alerts when certain conditions are met over time.
Conversation patterns are the area where Mr. Hohpe has done the most work over the last few years. He has been thinking about a vocabulary to describe aspects of a conversation, including request, reply, subscribe, and tacit agreement. This last one, “tacit agreement,” is basically a negative acknowledgement in which the lack of a reply implies agreement.
One challenge has been finding a good notation for conversation patterns. “Conversations are richer but not as easy to describe,” Mr. Hohpe said. He added that he has been seeking feedback and that there have been some very interesting discussions around this. Articles and papers on this topic can be found at https://eaipatterns.com/articles.html.
For more insights on the evolution of enterprise integration patterns, view Mr. Hohpe’s complete keynote here.