Enterprise Integration Patterns
Gregor’s Ramblings on Design
HOME PATTERNS RAMBLINGS ARTICLES TALKS DOWNLOAD BOOKS CONTACT
My latest thoughts on integration architecture:
Queues invert control flow but require flow control
Control Flow—The Other Half of Integration Patterns
Event-driven = Loosely coupled? Not so fast!
A Decade of Enterprise Integration Patterns
(IEEE Software)
20 Years of Patterns' Impact
(IEEE Software)
Conversations Between Loosely Coupled Services
(Video on InfoQ)
Developing in a Service-oriented World
(Video on InfoQ)
SOA Patterns - New Insights or Recycled Knowledge?
(Whitepaper)
Let's Have a Conversation
(IEEE Internet Computing)
Programming Without a Call Stack - Event-driven Architectures
(ObjektSpektrum, 2006)
Your Coffee Shop Does Not Use Two-Phase Commit
(IEEE Software)
Developing in a Service-Oriented World
(ThoughtWorks Whitepaper)
An Asynchronous World
(Software Development)
Nearfield Communication (NFC) in Japan
(OOP 2012)
Embedded OSS
(OOP 2012)
Programming the Cloud
(QCOn Tokyo 2010)
Distributed Programming the Google Way
(Devoxx 2009)
Developing in a Service-Oriented World
(SOACon 2007)
Programming without a Call Stack: Event-driven Architectures
(SOACon 2007)
Software Visualization and Model Extraction
(TheServerSide)
Where did all my beatiful code go?
(SpringOne, 2006)
Conversations Between Loosely Coupled Systems
(SD West, 2006)
Enterprise Integration Patterns
(JAOO, 2003)
Gregor HohpeHi, I am Gregor Hohpe, co-author of the book Enterprise Integration Patterns. I work on and write about asynchronous messaging systems, distributed architectures, and all sorts of enterprise computing and architecture topics.
TOPICS
ALL RAMBLINGS  Architecture (12)  Cloud (14)  Conversations (8)  Design (26)  Events (30)  Gregor (4)  Integration (23)  Messaging (13)  Modeling (5)  Patterns (8)  Visualization (3)  WebServices (5)  Writing (12) 
POPULAR RAMBLINGS

This blog chronicles my journey with asynchronous and distributed system design over two decades. These are my Ramblings related to Design [See all Ramblings].    Subscribe  Subscribe to my ramblings via RSS.

Find my posts on IT strategy, enterprise architecture, and digital transformation at ArchitectElevator.com.


DDD - Diagram Driven Design   MAR 22, 2010

Drawing a picture turns out to be a useful system design technique. Read more »

Into the Clouds on New Acid   Mar 20, 2009

I have been speaking more frequently about cloud computing in recent days. As SOA is becoming a daily reality, I needed to advance to new, still slightly nebulous topic. What could be a better fit than cloud computing? All jokes aside, cloud computing provides for some interesting discussions and one should safely assume that Google has a word or two to say about it. Read more »

API's are for Humans, too   June 19, 2007

When graphical user interfaces became popular thrifty people had the idea that they could generate them automatically. Well, that bubble burst pretty quickly. When people say nothing is new with Web services, they are right in this case. Once again people want to generate the interface automatically. Read more »

Eric Newcomer is on to me   May 26, 2007

You can only get away with joking about transactions for so long before the gods of transactions bring you to justice. So is was only a matter of time before Eric Newcomer would catch me waxing about coffee and transactional integrity...  Read more »

EAI DSLs   May 23, 2006

I am so clever. In my very first professional project in the US over 10 years ago I used a DSL to solve an EAI problem. If those buzzwords had been around at the time I would have been pretty cool, too. I guess you can’t have everything. Read more »

The Metrics Maid   April 28, 2006

Some of the most hated people in San Francisco must be the meter maids, the DPT people who drive around in golf carts and hand out tickets to anyone who overslept street cleaning or did not have enough quarters for the meter. On some projects, the most hated people are the metric maids, the people who go around and try to sum up a developer’s hard work and intellectual genius in a number between 1 and 10. Read more »

March is Not a Number   April 16, 2006

A lot of discussion these days relates to DSL's (Domain Specific Languages) that allow business models and rules to expressed in a more readable fashion in the source code. Ultimately one might be able to share the executable source of the system with the business users to validate that this is what they wanted. While Java is not necessarily the greatest language to "host" a DSL we can go a lot further than developers generally believe or care for. Read more »

What is in a Name?   Mar 5, 2006

Computer science is known as the field where every problem can be solved by just one more level of indirection. Well, a message channel berween two components is such a level of indirection. As it turns out naming this additional element can have a more profound influence on the system design than might appear at first. Read more »

Of Boxes and Lines   Feb 25, 2006

After joining the big G I put particular emphasis on staying in touch with the .Net community. For one thing, a fair number of my intellectual drinking buddies tend to congregate around the large software company in the Pacific Northwest. Second, as a believer in cross-platform integration, technology-neutral design patterns and peace on earth I want to make sure I switch the koolaid flavor every so often. One opportunity to do that presented itself at OOP in Munich where Ralf Westphal invited me to speak on distributed system architectures as part of the .Net track. During the proverbial hallway discussions we started talking about boxes and lines, but in a profound way...  Read more »

What Color Are My Shoes?   September 1, 2005

Two weeks ago I attended a very small, but special conference on enterprise software development. Here is what I came away with..  Read more »

Interface User   August 5, 2005

One of the biggest perceived fears of authors is that someone publishes a book or an article on the same topic just ever so slightly ahead of you that you have done all the work but look like a copy cat if you still publish your work. In reality this actually does not happen very often (at least not for books) as each author has his or her unique style and view even on the same topic. This time, though, Ken Arnold stole a little bit of my show by publishing an excellent article in called "Programmers are People, too". Read more »

Configure This!   July 5, 2005

Having been to a number of conferences and their attached expo floors recently it was not surprising that I was not able to escape the line "this tool does not require programming, everything is done through configuration". Hearing this tag line for the third or fourth time got me wondering, "what really is the difference between coding and configuring?" Read more »

Will the Real Asynchrony Please Stand Up?   May 15, 2005

On a recent project we developed a Web services framework that supports asynchronous callbacks and asynchronous invocation with polling. The difficulties we had describing what we were trying to do to my fellow ThoughtWorkers on other projects prompted me to discuss the different forms of asynchrony in a little more detail. Read more »

Are You Driving a DeLorean or a Toyota?   March 30, 2005

When you build a distributed system you have to choose between latency and reliability. Sticking your head in the sand will not help (and you get sand in your ears...). Read more »

Can You Say "Synchronous Asymmetry or Asynchronous Symmetry"?   March 25, 2005

In my perennial battle to free distributed system developers' minds from the perils of the call stack mentality I came across another reason why a call stack is not appropriate for distributed applications: the call stack is inherently asymmetric. However, when building distributed applications, that asymmetry really has no place. Read more »

Extensibility Points   February 1, 2005

Today's rambling takes a look at the application side of application integration. We recently looked at a packaged application under development and looked at criteria and options for how this application can live in an evolutionary and connected environment. Read more »

SOA's and Drunk Driving   January 17, 2005

Happy New Year everybody! Over the holidays I tried to sort out some of my thoughts on Web services, SOA, architectural styles, coupling and all the other good stuff. I started to think about service-oriented architectures as an architectural style and how it compares to prior styles, such as distributed component architectures. Maybe it was the New Year's mood but I started to think that the evolution of architectural styles is a little bit like drunk driving... Read more »

Enemy of the State   December 19, 2004

One of my favorite pastimes is to argue with people whether a solution is stateless, whether it should be stateless and what it means to be stateless in the first place. Ideally, the debate would involve alcoholic beverages and the other person would pick up the check. After "loosely coupled", "stateless" must be a close runner-up as the ultimate nirvana in buzzword-compliant architectures. It is also equally hotly debated. Today, I 'd like to share my view on state and lessness. If you disagree you are welcome to argue with me, but you are buying! :-) Read more »

Good Composers are Few and Far in Between   November 30, 2004

Loosely coupled architectures are often portrayed as the holy grail of architecture. But all too often these architectures turn into what Martin Fowler coined the "Architect's dream but the developer's nightmare". This time I want to share some of the challenges we have found working with loosely coupled architectures and how we addressed them. Read more »

Starbucks Does Not Use Two-Phase Commit   November 19, 2004

People often criticize asynchronous messaging solutions as too complicated and cumbersome. Or, they believe distributed solutions cannot be successful unless they include a distributed transaction model. There is little doubt that asynchronous solutions require us to think in new ways as we have to deal with concurrency, out-of-sequence issues, correlation and other. However, the real world is full of examples of asynchronous processes that deal successfully with exactly the same issues. We don't have to go further than the local coffee shop... Read more »

Look Ma -- No Middleware! Using Event-Driven Architectures inside a JVM.   October 1, 2004

Our most recent project was to replace a batch-oriented stored procedure with a more flexible, maintainable and scaleable Java-based architecture. We chose an event-driven architectural style that processes events as they occur. For the initial roll-out we did not even have to distribute the solution so it all runs in single JVM (if you ignore clustering for the moment). Read on to learn more about the implementation and our experiences with intra-JVM EDA. Read more »

Dependency Injection in Messaging Architectures   September 3, 2004

The notion of Dependency Injection or Inversion of Control has generated quite a bit of interest lately. To a large extend, the move towards this architectural style is driven by developer's dissatisfaction with strong dependencies of individual components on their run-time container (for example, J2EE). These dependencies make it difficult or impossible to test components outside of their container, throwing a major monkey wrench into test-driven development of these types of applications. Dependency Injection avoids these dependencies and therefore improves testability. On a recent project we developed an event-driven architecture (intra-JVM, not distributed) and found that we could realize many of the same benefits. Read more »

Visualizing Dependencies   July 12, 2004

Many of you have seen my rants on doodleware and top-down modeling. At the same time, anyone who has seen my book must believe me when I say that I am a very visual person. Is Gregor going schizophrenic (or becoming a hypocrite)? Not at all! I am a big fan of visual representations that are harvested from an actual running system and present the user with an accurate, big picture view of a working system. I felt it was time to put some money (time) where my mouth is and try to build such a solution and see what actually happens... Read more »

No Escape From Integration   January 5, 2004

I had never thought about having guest appearances on my ramblings, but this e-mail response from my friend Hyon made me laugh hard enough that I think it would be a waste not to share it with the community. Read more »

Hysteresis of Design Decisions   December 31, 2003

Design decisions can be influenced by many factors. In order to make matters more predictable, many architects look for clear-cut borderlines. How complex does my screen navigation have to be in order to justify a Front Controller as opposed to a Page Controller? How complex does my integration problem have to be to justify use of an EAI suite instead of hand wiring the solution? Invariably, the answer is "it depends". Let's have a closer look at why that is so. Read more »

Doodleware   November 1, 2003

Many integration tools offer graphical development tools. Do they really make integration easier? Read more »