Reference - Managed Configuration on Event Brokers

This page provides a brief overview how Event Portal objects and AsyncAPI representing an Application Registration are mapped to an event broker service.

All Elements on Target Event Brokers

  • Applicable event brokers are identified from the Event API Product version associated with the Application Registration.
  • Taking the Access Request status into account, only Event API Products that are associated via an APPROVED or LIVE access request are relevant.

Client Profile

The client profile is selected from a list of presets based on this criteria:

  • Event API Product plans associated with the Application Registration: guaranteed messaging.
  • The events associated with the Application Registration. If a plan has guaranteed messaging, determine if the client needs to publish and/or consume guaranteed messages.
  • The protocols associated with the application registration. MQTT, requires endpoint creation privileges. The flow diagram below illustrates the selection rules.

ACL

  • The Application Registration registrationId becomes the ACL name.

ACL Subscribe and Publish Topic Exceptions

  • All event topics associated with the Application Registration
  • Access requests that are APPROVED or LIVE
  • Traversing Event API Products and event APIs to find all applicable topics
  • Replacing parameters in topics with enumeration values, filters, or wildcards (*, >)

Authorization Group

  • The Application Registration registrationId becomes the authorization group name, references the ACL (again using the registrationId), and client profile (as previously selected).

Client Username

  • Application Registration credentials objects become clientUsername and password.
  • References aclProfileName (registrationId) and clientProfileName from the selected client profile.

MQTT Session

  • If the Application Registration is associated with the MQTT protocol via an APPROVED or LIVE access request and the Event API Product version:
    • mqttSessionClientId is the registrationId owner a credential username from the app registration.
  • If an associated Event API Product version plan requires guaranteed messaging, queue settings are derived from the plan:
    • newSession.queueMaxTtl is the highest TTL of all associated plans.
    • newSession.queueMaxMsgSpoolUsage is the aggregate of all spool sizes of all associated plans.
    • newSession.queueRespectTtlEnabled sets to true if any associated plan specifies a TTL.

Queue

  • The associated plans determine the number of queues to be created (one per Event API Product, one per API) and the scope of the queue determines the name of the queue.
  • Queues are created only if there are applicable subscriptions.
  • Queue Names:
    • Per API Product: ${app.registrationId}/${eventApiProduct.id}/${plan.id}
    • Per API: ${app.registrationId}/${eventApiProduct.id}/${plan.id}/${api}
  • Queue Properties:
    • queueName —as derived from the Event API Product plans queue scope
    • owner— username from the app registration
    • accessType—as defined in the plan
    • maxTtlplan.solaceClassOfServicePolicy.maximumTimeToLive
    • maxMsgSpoolUsageplan.solaceClassOfServicePolicy.maxMsgSpoolUsage
    • respectTtlEnabled—true if (plan.solaceClassOfServicePolicy.maximumTimeToLive > 0)

    Queue Subscriptions

    • All event topics associated with ApplicationRegistration
    • The client can SUBSCRIBE to (AsyncAPI that is PUBLISHED to the client)
    • Access requests that are APPROVED or LIVE
    • Traversing Event API Products and event APIs to find all applicable topics
    • Replacing parameters in topics with filters or wildcards (*, >)

Client Profile Selection

The client profile process it described by the following diagram.

Diagram of the client profile selection data flow.