Configuring Messaging
Talon microservices are message driven services. To receive messages, a microservice connects to one or more messaging buses and register message interest on the buses so that messages published on the bus are drawn to the microservice and dispatched to message handlers for processing. This section describes how to define the abstract bus structure globally and how to configure microservice-specific connections and message interest.
This section requires a knowledge of the key messaging related abstractions as discussed in the Talon Messaging Model. The following is a quick recap of these abstractions.
A message bus groups messaging participants and serves as a container of one or more message channels. Message channels support one-many communication semantics and serve as named conduits through which messaging participants exchange messages.
Message channels define the concept of channel keys and channel filters. Keys and filters are used to facilitate fine-grained message routing on the bus. Channel keys are configured bus wide while channel filters are configured on a per participant basis. For each message sent on a channel, the channel's key is used in conjunction with message contents and key resolution tables (KRT) to resolve the message key for the sent messages. A sent message is delivered to participants with filters that match the message's key.
To participate in message exchange, a Talon microservice connects to one or more messaging buses, configures and joins each of the channels it is interested in receiving messages from. Once messaging is started, the microservice processes Inbound messages in message handlers and sends outbound messages through channels.
The AEP engine uses configuration information to manage the lifecycle and policies of messaging connections and register messaging interest (configure and join channels) on behalf of its microservice. Once messaging interest has been registered and the messaging connections created and started, the engine receives and dispatches messages inbound on joined channels to the microservice's message handlers and provides mechanisms to the microservice to send outbound messages.
Configuration Organization
Messaging configuration is split between global (shared) and per-microservice concerns:
Global Configuration (in <buses> section):
Bus names and structure
Channel catalog (channel names, QoS, key patterns)
Per-Microservice Configuration:
Bus connection descriptors - Though physically specified in the
<buses>section (typically using substitution parameters), connection descriptors are conceptually per-microservice as each microservice may require different connection credentials, client IDs, or other provider-specific parametersMessage factories - Which ADM-generated factories the microservice uses (in
<app>section)Channel joins and filters - Which channels to join and with what subscription filters (in
<app>section)Subscription policies - Preservation behavior on shutdown (in
<app>section)
Topics
Configuring Bus Connections - Define the abstract bus structure globally and configure per-microservice connection descriptors
Registering Message Interest - Configure microservices to join channels, register message factories, and define message handlers
Last updated

