+1 for the implementation.
One main advantage with the above approach is publisher and subscriber
widget authors don't need to worry about the load order as it is entirely
handled by the parent widget component. They just have to write their
publishing and subscribing logic thinking that subscriber widget will be
always loaded before the publisher widget.

Thanks,
Tanya

On Mon, Nov 27, 2017 at 12:34 AM, Nisala Nanayakkara <[email protected]>
wrote:

> Hi All,
>
> Purpose of this mail is to discuss the solution regarding the 'Message
> queuing mechanism to prevent losing messages in PubSub"*. *Please find
> the below information in order to get more context regarding the $subject
> *.*
>
> *Problem & C4 solution*
>
> Let's consider a situation where there is a dashboard with publisher and
> subscriber widgets. If the publisher widget is rendered before the
> subscriber widget, the subscriber widget may miss the initial messages that
> are published by the publisher. As a real-world example, we can consider a
> scenario where date picker widget publishes initial date range and the
> other widgets should be rendered according to that published date range. If
> the date picker widget is rendered before the other widgets, these widgets
> will not able to get the published date-range. In C4, we have implemented a
> feature to control the load order of the widgets. So that we can control
> the load order of widgets and resolve the above-mentioned problem.
>
> *Proposed Solution*
>
> In C5 dashboard component implementation, we have used Golden Layout to
> handle the layouting and rendering of the dashboards. Please refer the mail
> thread[1] for more information. Because of this reason, we do not have the
> control over the widget load order in dashboards. So we have come up with
> the following solution in order to resolve this issue.
>
>    - Publisher widgets publish messages using its parent(base) widget.
>    Please refer mail thread[2] for more information about parent widget
>    component.
>    - If the dashboard is not initialized, messages will be queued at the
>    widget level and start listening to dashboard initialized event. Once the
>    dashboard is initialized, queued messages will be sent to the respective
>    channel. So that the subscriber widgets can get the published messages
>    without any issue.
>
> The above implementation will be available with the stream processor beta
> version. If you have any concerns or issues. Please feel free to ask.
>
> [1] - Mail Subject - [Meeting Notes] Discussion on way forward with
> Dashboards @ Wed Jun 14, 2017 10am - 11am (IST) (WSO2 Platform Team Group)
>
> [2] - Mail Subject - [Dashboard] Introducing a base widget component
> Thanks,
> Nisala
>
>
> --
> *Nisala Niroshana Nanayakkara,*
> Software Engineer
> Mobile | +94 717600022
> WSO2 Inc | http://wso2.com/
>



-- 
Tanya Madurapperuma

Associate Technical Lead,
WSO2 Inc. : wso2.com
Mobile : +94718184439
Blog : http://tanyamadurapperuma.blogspot.com
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to