Messaging is a technology that enables high-speed, asynchronous, program-to-program communication with reliable delivery.

Reasons to use Messaging

  • Remote communication
  • Platform and Language Integration
  • Asynchronous Communication - send and forget
  • Variable Timing - allows sender to batch requests
  • Throttling - allows receiver to control rate of consumption
  • Reliable Communication
  • Disconnected Operation
  • Mediation - provides high number of distributed connections to a shared resource
  • Thread Management - asynchronous operation prevents blocked thread
  • Loosely coupled
    1. Data Format - use XML
    2. Location - logical channel - not knowing precisely where and which process is at the other end
    3. Time - logical channel using queue - removal of time dependency
    4. Platform Technology - taken care of by vendor system

Concerns for using messaging

    • Complex programming model
    • Sequence issue
    • Performnance

Messaging Key Components

    • Message Channel
    • Point-to-point Channel
    • Publisher-subscriber Channel
    • Message End-point
    • Message

Message Channels : Pathways for message transmission. Can be represented by database tables where data access layers serve as channel adapter, or can be provided by a package like MQ, where adapters are provided by vendor API.

Channel Adapter : A end point component that can attach to an application and publish message to a message channel. The application may or may not be aware of the presence of the adapter.

Enterprise Message Bus : A common message pathway where applications communicate with each other through sending and receiving of messages. Applications can be independently inserted and removed from the bus.

Message : Free format or XML. Common representation does not necessarily mean common semantic.

A message is transmitted in 5 steps

Create
Send
Deliver
Receive
Process

Sample Architecture

Multiple front office trade capture systems, each makes use of a post-trade SDK or TCP/IP connection, sending message through a dedicated channel adapter.

Channel adapters send messages through channels - channels could be database tables for individual trade capture systems or a aggregated table for all trades. These messages are raw messages with incompatible formats.

Messages are then sent through point-to-point channels to message translators, which translate the messages into common form using a canonical data model and wtire to a final point-to-point channel which is essentially a common table that holds generic trade records.

The common table serves as the persistent store to the central process manager which manages the progress of the trades.