Michelle graciously volunteered to sketch out some ideas for our Emergent Communication backbone. I thought I&#39;d throw out some random thoughts to (hopefully) help her out a little, get some ideas flowing...<br /><br />Re the text &quot;stream&quot; at its heart - actually I like the term &quot;flow&quot; better, since &quot;streaming&quot; has a connotation these days which isn&#39;t what we&#39;re going for, I think.<br /><br />What about a temporary holding cell for msgs, something with a limited size where msgs can expire over time or get bumped out. Maybe there&#39;d be a Wayback Machine plug-in that could do more extensive archiving, w/ occasional retrieval of old stuff. But the core would be a smaller msg set representing the current conversation.<br /><br />An alert/event system, where a plug-in can register to get notified of new msgs. Plug-ins could get all new msgs and then if they want to filter on just the &quot;R&quot; words they can do that. A reusable filter interface would let other plug-ins share code.<br /><br />Should plug-ins and/or pieces have registered identities, so if a piece wants to it can check to see if its friends are there? Likewise should pieces register a small set of capabilities?<br /><br />Some limiters/throttlers may be required. If we&#39;ve got an email plugin it&#39;d be a trip to see it get on some spam lists and see what that does to the system, but all in good measure.<br /><br />Knobs for tweaking the flow in real time would help.<br /><br />What language to write the core server in? Requirements: Fast/easy, well-known by the group and moderately powerful/flexible. I&#39;m thinking Java or Python would probably fit the bill but am open to whatever.<br /><br />Use sockets for core-to-plugin communication? Then plug-ins can be in whatever language, and remote, though it adds a little complexity. Or we could have plug-in proxy, say, a local Java plug-in that proxies functionality to remote plug-ins.<br /><br />Have different levels of msgs, or threading? For example, the msg &quot;this project is rad&quot; comes in and some repeater piece produces three more msgs &quot;this this this project&quot;, &quot;project rad rad&quot;, &quot;this this is is is is&quot; - does everyone necessarily always want every msg? Or do msgs have a limited amount of threading - &quot;msg 499 is in response to msg 485&quot; - that pieces can use to glom onto particular threads if they want, or just take top-leve msgs?<br /><br />Eric