As Microsoft’s WCF progresses through new versions, it is gradually becoming a replacement for many existing products and architecture styles. In an earlier post, I had briefed how it can be looked as a best replacement for hub & spoke architecture style. In this post, let us see how it can replace ESB.
If you look at the key capabilities of a typical ESB product, it includes Intelligent Routing, Service Aggregation & Load balancing.
If you spend some time of WCF Routing capability, you can understand how it supports “content based routing”. It allows routing of the incoming messages / requests based on the content in the message or in the header. This capability can be leveraged to address the typical techno-business requirements like endpoint virtualization, load balancing, service versioning, priority routing, service aggregation & protocol bridging.
Endpoint virtualization: A single router service can be exposed to end clients and it can be configured to route the messages to several internal service endpoints, by that way it will act as a façade service (also can be called “Composite Service”).
Load Balancing: The same concept can be applied to route the services based on the load by applying rules as filters to the incoming messages
If your solution need only these capabilities, you can better go with WCF (free !) rather than investing in a ESB product or spending effort on leveraging open source ESBs.