On Tue, Jun 20, 2017 at 8:29 PM, Nuwan Dias <nuw...@wso2.com> wrote:

> I'm not in favor of using special headers or anything like that. What if
> we just send all API updates to all Gateways? Each Gateway upon receiving
> this event will request for the particular API from the Core. The Core will
> only give that API to the Gateway if the Gateway's labels matches that of
> the requesting Gateway. If it does not, the core will refuse to give the
> API to the Gateway and in that case if the Gateway already has that API
> deployed it should go and remove it from itself (same code that runs in
> case of an API delete event).
>
Yes it would be more consistent. If we send changed labels in a header, we
might can reduce calls to the core but it's very minimal.

>
> Thanks,
> NuwanD.
>
> On Tue, Jun 20, 2017 at 3:24 PM, Harsha Kumara <hars...@wso2.com> wrote:
>
>>
>>
>> On Tue, Jun 20, 2017 at 11:39 AM, Thilini Shanika <thili...@wso2.com>
>> wrote:
>>
>>> Hi All,
>>>
>>> As per the APIM C5 architecture, the gateways can be registered in APIM
>>> Core, specifying it's label and accessURLs. When creating/updating APIs,
>>> the API can be moved to a gateway by assigning the label of the gateway
>>> which registered under APIM Core. Once a label is assigned to an API, that
>>> particular API will be deployed and available to the gateway/gateways
>>> represented by the given label/labels.
>>>
>>> Basically, all the API related actions(API create/update/delete/status
>>> change) are published to JMS topic along with label information. The
>>> gateways are responsible for listening to the topic, capture events which
>>> are relevant and process them. Ideally, gateways should filter the events
>>> based on API label and only process the events generated for APIs which are
>>> assigned with their gateway labels and rest of the events should be
>>> ignored.
>>>
>>> But when it comes to label update, the gateways should behave
>>> differently, due to the scenarios explained before. Though API label update
>>> is populated as an API update event, some of the gateways have to process
>>> this API updates differently(May be as an API create or may be as an API
>>> delete)
>>>
>>>    - Moving API to a new gateway: When a new gateway label is assigned
>>>    to an API, the event generated for the gateways with newly added
>>>    label/labels is an API create event and the API should be deployed to the
>>>    gateway/gateway with newly added label/labels.
>>>    - Remove API from a gateway: When a label is removed from an API,
>>>    the event generated to the gateway with the removed label is an API 
>>> delete
>>>    event and API should be undeployed from that gateway.
>>>
>>> We came up with few solutions in order to handle label related API
>>> update events.
>>>
>>>    - Introducing a new event on API label update:
>>>
>>>            During an API update, we need to identify whether there is a
>>> label change and populate a label update event with label change details
>>> (ie: newly added label/previous labels).  The gateways can read the label
>>> change information and decide whether it is relevant to process the event
>>> and perform API deploy/undeploy actions accordingly.
>>>
>>>    - Introducing a header/property to force every API gateway to
>>>    process an label update related event:
>>>
>>>             If there is a label update, a property is set to JMS event
>>> so that every gateway should process the events generated with that
>>> particular property. Ideally, the gateways process API events
>>> generated with its own gateway label, but in this case, they have to
>>> process the event if it comes with this property.
>>>
>> +1 for the approach as we can handle through the API update event. What
>> information are we going to send with this property? Is it only specify
>> label change? I think we will need to send the label changes as we will
>> need to  process it from the gateway side. Somecases we will need to remove
>> the API from particulae gateway during a label change.
>>
>>>
>>> Any suggestions on this? Your thoughts and suggestions are highly
>>> appreciated
>>>
>>> Thanks
>>> Thilini
>>>
>>> --
>>> Thilini Shanika
>>> Senior Software Engineer
>>> WSO2, Inc.; http://wso2.com
>>> 20, Palmgrove Avenue, Colombo 3
>>>
>>> E-mail: tgtshan...@gmail.com
>>>
>>>
>>
>>
>> --
>> Harsha Kumara
>> Software Engineer, WSO2 Inc.
>> Mobile: +94775505618 <+94%2077%20550%205618>
>> Blog:harshcreationz.blogspot.com
>>
>
>
>
> --
> Nuwan Dias
>
> Software Architect - WSO2, Inc. http://wso2.com
> email : nuw...@wso2.com
> Phone : +94 777 775 729 <+94%2077%20777%205729>
>



-- 
Harsha Kumara
Software Engineer, WSO2 Inc.
Mobile: +94775505618
Blog:harshcreationz.blogspot.com
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to