Skip to content

Event Hub

The Event Hub acts as a mediator between the Adapter and the Control Plane. Choreo Connect uses the following methods to fetch data from WSO2 API Manager (WSO2 API-M).

Note

The Event Hub is included within the Control Plane profile of WSO2 API-M. Therefore, if you use a distributed setup use the IP address of the control plane node for the configurations. For more information on profiles, see API-M Profiles.

Internal Data REST API

The Internal Data API (https://<APIM_HOST>:<PORT>/internal/data/v1) is a REST API exposed in WSO2 API Manager to retrieve data related to APIs, applications, subscriptions, Key Managers, Rate Limiting, and token revocation.

During startup, Choreo Connect invokes this API to fetch the authenticated users' tenant domain data related to the already created API, application, subscription, Key Manager, Rate Limiting and Revoked Token.

JMS Topic

Choreo Connect has several consumers such as notification, keymanager, token revocation and rate limiting which are subscribed with relevant topics in order to receive events from the Control Plane. By enabling the Event Hub, which is within the Control Plane, in the Choreo Connect configuration file, the real-time data in WSO2 API Manager will automatically be available in Choreo Connect.

Notification events

When a create, remove, or an update operation happens for an API, application or subscription in API Manager, the data are published to notification the JMS topic. When the notification consumer receives the event, Choreo Connect updates the in-memory data stores related to APIs, Applications, and Subscriptions.

KeyManager events

When a create, remove, or an update operation takes place for the Key Managers that are defined in the WSO2 API-M Admin Portal, the data is published to the Keymanager JMS topic. When the event is received to the keymanager consumer, Choreo Connect updates the in-memory token issuer data store.

Note

The update in the token issuer data store takes place for remove keymanager only if that issuer is not presented in security token service configuration.

Setting the Connection for the JMS receiver

Multiple event listening endpoints can be defined as an array to use for the connection, along with optional failover parameters.

The following sample configuration illustrates how the eventListeningEndpoints configurtion for the JMS receiver can be defined:

[controlPlane.brokerConnectionParameters]
    eventListeningEndpoints = ["amqp://admin:$env{cp_admin_pwd}@apim:5672?retries='10'&connectdelay='30'",
                               "amqp://admin:$env{cp_admin_pwd}@apim:5673?retries='20'&connectdelay='30'"]
Optional parameters Default Value Description
retries 1 The number of retry attempts when connecting to the broker.
connectdelay None How long (in seconds) to wait before attempting to reconnect. The recommended value is 30 seconds.

Event Hub Configuration

[controlPlane]
 enabled = true
 serviceURL = "https://<apim-ip>:9443/"
 username="admin"
 password="$env{cp_admin_pwd}"
 environmentLabels = ["Default"]
 retryInterval = 5
 skipSSLVerification=true

 [controlPlane.brokerConnectionParameters]
   eventListeningEndpoints = ["amqp://admin:$env{cp_admin_pwd}@<apim-ip>:5672?retries='10'&connectdelay='30'"]
   reconnectInterval = 5000
   reconnectRetryCount = 60

 [controlPlane.httpClient] 
   requestTimeOut = 30

For more information, see Control Plane Configurations.