On Wed, Aug 14, 2013 at 1:07 PM, Maninda Edirisooriya <mani...@wso2.com>wrote:

> At the moment in BAM, all the data received from data bridge are directly
> stored to the Cassandra. When a new stream creation message is received,
> that stream is automatically created and starts to listen to that stream
> automatically.
>
> As a new feature we are going to re-use the InputTransportAdapter and
> InputMessageBuilder (currently used by CEP) to receive messages to BAM. The
> rationale is to unify the message receiving features in both CEP and BAM
> which will enable BAM to receive message from other transports such as JMS.
>
> One problem with this new feature is enabling the automatic stream
> creation with InputTransportAdapter and InputMessageBuilder. The user has
> to pre-configure the streams it is intended to be listened so that new
> message builders are created for each stream.
>
> The second problem is filtering the streams come to CEP and BAM. Some
> streams may be only required to be used by CEP but not BAM. The reason is
> keeping all the messages comes to CEP in Cassandra will waste the disk
> space. But there is no stream filtering mechanism either in CEP or BAM at
> the moment.
>

Yes. This is a limitation and there should be a proper mechanism to route
streams based on stream content. This can be implemented as a generic
feature.


> The solution we have come up is as follows.
>
> 1. BAM is listening to both event builders and data bridge.
> 2. Event builders should be pre configured if the streams have to be
> received via event builders.
> 3. But still all the streams come to data bridge will be received by the
> data bridge listener.
> 4. When a new stream creation message is received either to event builder
> or to data bridge, they will notify it to our new lisetner.
> 5. There is a separate configuration stating what are the streams accepted
> by the BAM. If that configuration is "*", all the streams should be
> accepted. (should go to Cassandra) If there is a comma seperated list of
> streams, only those streams should go to Cassandra. If a set of streams
> stated after a "!" symbol, all the streams except those streams should go
> to Cassandra.
> 6. When a stream creation message is notified to a listener, that listener
> should create a stream in the Cassandra only if that stream is matching
> with the stream set stated in the config file.
> 7. Now the problem is receiving the same message from both event builder
> and the data bridge. Therefore when a stream creation is notified, the
> notifier (either event builder or the data bridge) is remembered by the
> listener. Only that notifier will be allowed to store events to the
> Cassandra using that stream. In other words, either event builder or the
> data bridge can store events using a unique stream.
>

+1 for the approach.


>
>
> *
> Maninda Edirisooriya*
> Software Engineer
> *WSO2, Inc.
> *lean.enterprise.middleware.
>
> *Blog* : http://maninda.blogspot.com/
> *Phone* : +94 777603226
>
> _______________________________________________
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Malith Dhanushka

Engineer - Data Technologies
*WSO2, Inc. : wso2.com*

*Mobile*          : +94 716 506 693
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to