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
andpassword
. - References
aclProfileName (registrationId)
andclientProfileName
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 theregistrationId
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}
- Per API Product:
- Queue Properties:
queueName
—as derived from the Event API Product plans queue scopeowner
— username from the app registrationaccessType
—as defined in the planmaxTtl
—plan.solaceClassOfServicePolicy.maximumTimeToLive
maxMsgSpoolUsage
—plan.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.