-
Notifications
You must be signed in to change notification settings - Fork 107
Spring integration with Azure Messaging design doc
Warren Zhu edited this page Sep 30, 2018
·
11 revisions
Azure provides multiple messaging services but with various usage scenario and different API. Some popular ones are storage queue, service bus queue and topic and event hub. Customers may start with a simple one with lower throughput, then switch a more advanced and sophisticated one which provides high throughput and dynamic load balancing. Current each message service SDK has its own message format and inconsistent sending and receiving semantics, which makes a steep learning curve and high migration cost to new technologies. So when thinking about how to make Spring integration with Azure message service smoothly, we try to provide a uniform message interface and consistent messaging semantics with Spring.
-
Uniform message interface provided by Spring. Spring
Message
interface is used for all services for sending and receiving. For each service, we provides message converter to convert between Spring message and azure service specific message format. You also can provide your custom message converter. -
Consistent message semantics defined by clearly separated interface. We provides
SendOperation
,SubscribeOperation
andSubscribeOperation
. Different message service implement supported function through its message template. -
Different level of abstraction. The lower level you operate at, you have less dependency and more control. From lower to higher, we provides
Template
,ChannelAdapter
with Spring Integration andBinder
with Spring Cloud Stream.