I've learned about a new design pattern that is conceptually similar to an ESB. It's called an Event Driven Architecture or EDA.

I like this term because it describes the pattern that I've been trying to implement here at IMC via our Service Bus implementations.

I still think that an ESB is useful, but the industry seems to be converging on the concept that an ESB is something sort of like BizTalk with it's transformation and orchestration capabilities.

EDA can be implemented on top of an ESB of this definition, but it does not require that much power to work right.

Microsoft actually built something close to an EDA into Component Services (COM+) via their loosely-coupled events feature. This was a decent implementation for COM based applications. It doesn't work so well for .NET and it doesn't quite achieve the goals of EDA.

There are specs in the works with W3C and other standards organizations for EDA style interactions, but the specs aren't mature and no one has implemented them yet. The main spec that I like is WS-Eventing. Hopefully it will see some adoption soon! Microsoft mentioned it in their implementation of the Microsoft Service Engine.