Hi All,

According to APIM C5 architecture, the events like API create, API
lifecycle status change, API subscriptions are notified to APIM gateway via
JMS topic/topics in the broker.

Following diagram depicts how APIM core, broker and gateway components
interact when there is an event generated from Core.


Following are the two options we came up while implementing above event
publishing scenario from APIM Core --> Broker --> Gateways.

*1) Publishing all the events to a common topic *

A single topic is maintained in broker and all the gateways are subscribed
to this common topic. APIM core publishes all the events generated from
APIM to this particular topic. After topic subscription, the gateways keep
listening to the topic and once a notification is received, it has to be
filtered to identify the event type and perform the required action. The
events like API create, lifecycle status change, API subscription etc are
getting published through this common topic and the event type has to be
reflected in the notification itself so that the gateways can identify the
notification and decide what has to be performed next. In this case, it has
to maintain a single connection to JMS topic from each gateway.


​

*2) Maintaining dedicated topics for each event type*

In this option, we can either maintain dedicated topic for each event type
(API Create, API publish, API subscription) or maintain dedicated topics
for API publisher, API store events. As per this solution, the gateways
have to subscribe to all these topics and keep listening to all of them. In
that case, gateways have to establish and maintain more connections with
the broker, since there are several topic subscriptions. Once a
notification is generated from APIM and published to the relevant topic,
that particular notification is received by the relevant gateway service
and process the message to perform the next action. But, the filtering
logic which has to be executed in ballerina gateway side is less complex in
this solution.


​
What would be the best option here? Your suggestions and comments are
highly appreciated.

Thanks
Thilini



-- 
Thilini Shanika
Senior Software Engineer
WSO2, Inc.; http://wso2.com
20, Palmgrove Avenue, Colombo 3

E-mail: [email protected]
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to