Hi All,

We had a meeting to discuss the subject.

Participants - Azeez, Sameera, Chanaka, Anjana, Chamil, Pubudu, Irunika and
Chathurika

Let me quickly explain how components are wired together using
CarbonMessageProcessor, CarbonMessage and CarbonCallBack at the moment. We
have Carbon-Messaging component which provides all the aforementioned
common classes. Both transport developers and engine developers have to
depend on these common classes to provide their own implementations as in
the below diagram.



However, over time it was realized that having a common abstraction is
difficult and raised a few discussion points.

Following are the main discussion points we had,

1) Different transport implementations require different CarbonMessage
types.
2) CarbonCallBack only fits in for response/request paradigm.
3) Having to write different transport dispatchers on the
CarbonMessageProcessor side.

Considering all the above points it was decided that having a common
abstraction for all the different types of transports is not easy. Mainly
because they are inherently different from one another. After all,
Carbon-Messaging [1] component was only helpful to decouple Transports from
run-time engine at compile time. During run time those two components were
decoupled using OSGi service registry. Hence, necessity for
Carbon-Messaging repo is little.

With the new design, we are planning to allow each transport implementation
to have their own CarbonMessageProcessor, CarbonMessage and CarbonCallBack.
Therefore, they will be used as different libraries. Following diagram
depicts the concept.


​
As you can see, the main difference is there is no single entry point from
transport to Ballerina run-time as each transport will have its own
MessageProcessor. To begin with we thought of working on HTTP Transport and
Websockets transport. ​Will send another mail explaining the required
changes in HTTP and Websockets transport to support the new concept.

[1] https://github.com/wso2/carbon-messaging

-- 
Regards,
*Shafreen*
Software Engineer
WSO2 Inc
Mobile : 077-556-395-1
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to