On 26 July 2011 21:42, Edson Tirelli <span dir="ltr">&lt;<a href="mailto:ed.tirelli@gmail.com">ed.tirelli@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><br></div><div>   Hi all,</div><div><br></div><div>   As you all know, we use &quot;entry-points&quot; to represent streams in Drools, but in fact, entry points are a much more general abstraction than just streams. For instance, they create partitions in the RETE&#39;s alpha network, they support all Rete concepts like truth maintenance, they share a centralized fact handle factory (that is possibly a contention point), etc.</div>

<div><br></div><div>   Event Streams in general can have a much more specialized implementation. For instance, as events are immutable,</div></blockquote><div><br>&quot;Immutable&quot; certainly not by a Drools definition? Something with @role(event) is just a fact, and I can modify an event as required by my application.<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div> there is no need for truth maintenance;</div></blockquote><div><br>A fact derived from events could be managed by the TMS - why not? Or do you mean <a href="http://s.th">s.th</a>. else? <br>
<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div> streams should be 100% parallelizable (does this word exist?);</div></blockquote>
<div><br>If it didn&#39;t exist before, it exists now ;-)<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>some algorithms like event sequencing can be run before injecting events into the main engine instead of injecting and then coordinating back with the sequencing algorithm. </div>

<div><br></div><div>   Because of things like the ones above, I was considering creating an explicit concept for streams in Drools. They would be a first class concept in the engine and would be handled appropriately. They would be orthogonal to entry-points, and be used exclusively for events. </div>
</blockquote><div><br>It&#39;s difficult (for me) to see what a &quot;stream&quot; should imply. Can you provide a concise definition? A &quot;stream&quot; should be for  role event only, and its facts should be immutable (?) - what else? <br>
 <br>Are there any good use cases for these &quot;streams&quot; that cannot be readily dealt with using events?<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><br></div><div>   The other option that we have would be to continue to hide the implementation behind the concept of entry-points and to select algorithm details by compile time analysis. Although it seems like a simpler solution, it has the potential of confusing users</div>
</blockquote><div><br>Most of the time, the confusion of Drools users stems from the lack of clear documentation - not from the complexitiy of features. <br><br>Cheers<br>Wolfgang<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div> that would not know exactly when something is being executed as a regular entry point (with TMS, and all the stuff mentioned above) or as a specific stream (that has features that would be specific for events).</div>

<div><br></div><div>   Thoughts?</div><div>    Edson</div><br clear="all"><font color="#888888"><br>-- <br>  Edson Tirelli<br>  JBoss Drools Core Development<br>  JBoss by Red Hat @ <a href="http://www.jboss.com" target="_blank">www.jboss.com</a><br>

</font><br>_______________________________________________<br>
rules-dev mailing list<br>
<a href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
<br></blockquote></div><br>