I wonder if you are throwing too many processes and servers at the problem.  Can the solution be implemented by plain old functions within a single process?  <br><br>Dan.<br><br><div class="gmail_quote">2009/3/10 Jonathan Palley <span dir="ltr"><<a href="mailto:jpalley@idapted.com">jpalley@idapted.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">All -<div>   I've got this running in straight Erlang, but trying to understand how to apply to the OTP pattern.  </div>
<div><br></div><div>Wondering the best practice for a system like this:</div><div><br></div><div><br>
</div><div>event comes in (external source) -> various event handlers get sent the event based on the event type. -> these event handlers will filter the event to determine if they should send it on (via an http request).</div>

<div><br></div><div>The trick is this: there is an interface to add and delete event handlers with a filter.</div><div><br></div><div>In straight erlang I:</div><div>  - Created a new process for each handler.  The handler would be init with the filters. </div>

<div>  - A central event processor stored the PID of each handler and the event type it was subscribed to.  As an event would come in it would re-broadcast to the different handlers.</div><div>  - Each handler would then use its custom filter to determine whether to send it on.</div>

<div><br></div><div><br></div><div>Now, I would like all the robustness that comes with OTP.  Perhaps I am approaching this incorrectly, but what I can't figure out is:</div><div><br></div><div>- If I start multiple instances of gen_event (with different filters each) and add it to a supervisor tree, there doesn't seem to be a way to identify the one handler I want to delete (if I want to remove the handler)</div>

<div>- If I create only one gen_event for each event type and make the event_handlers be gen_server, I run into a similar problem (how do I call all the gen_servers that I want).</div><div><br></div><div>Thanks for any ideas!</div>

<div>JP</div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br></blockquote></div><br><br clear="all"><br>-- <br>Daniel Goertzen<br>-----------------<br>
work email: <a href="mailto:dang@networkintegritysystems.com">dang@networkintegritysystems.com</a><br>work phone: 1 443 303 8525<br>work sip: <a href="mailto:945050@fwd.pulver.com">945050@fwd.pulver.com</a><br>-----------------<br>
mobile: 1 204 470 8360<br>-----------------<br>home email: <a href="mailto:daniel.goertzen@gmail.com">daniel.goertzen@gmail.com</a><br>home phone: 1 204 272 6149<br><br><br>