<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://edurange.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Message_Bus_Project_Charter</id>
	<title>Message Bus Project Charter - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://edurange.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Message_Bus_Project_Charter"/>
	<link rel="alternate" type="text/html" href="http://edurange.org/wiki/index.php?title=Message_Bus_Project_Charter&amp;action=history"/>
	<updated>2026-06-19T03:59:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://edurange.org/wiki/index.php?title=Message_Bus_Project_Charter&amp;diff=925&amp;oldid=prev</id>
		<title>Jwgranville: Created page with &quot;== Scoping Outline: ==  === Challenges: ===  * &#039;&#039;&#039;What:&#039;&#039;&#039; &#039;&#039;&quot;Create ways to...&quot; / &quot;Redesign the...&quot;&#039;&#039; ** Design a local message bus that allows independently developed software components to communicate through typed broadcast topics without tightly coupling producers to consumers. ** Create a communication substrate whose traffic can be captured, replayed, and inspected, so that system behavior can be reconstructed after the fact. ** Support early-stage teams in which...&quot;</title>
		<link rel="alternate" type="text/html" href="http://edurange.org/wiki/index.php?title=Message_Bus_Project_Charter&amp;diff=925&amp;oldid=prev"/>
		<updated>2026-06-05T23:54:48Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Scoping Outline: ==  === Challenges: ===  * &amp;#039;&amp;#039;&amp;#039;What:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;Create ways to...&amp;quot; / &amp;quot;Redesign the...&amp;quot;&amp;#039;&amp;#039; ** Design a local message bus that allows independently developed software components to communicate through typed broadcast topics without tightly coupling producers to consumers. ** Create a communication substrate whose traffic can be captured, replayed, and inspected, so that system behavior can be reconstructed after the fact. ** Support early-stage teams in which...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Scoping Outline: ==&lt;br /&gt;
&lt;br /&gt;
=== Challenges: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;What:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;Create ways to...&amp;quot; / &amp;quot;Redesign the...&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
** Design a local message bus that allows independently developed software components to communicate through typed broadcast topics without tightly coupling producers to consumers.&lt;br /&gt;
** Create a communication substrate whose traffic can be captured, replayed, and inspected, so that system behavior can be reconstructed after the fact.&lt;br /&gt;
** Support early-stage teams in which contributors may be junior developers, by making the ordinary publishing and subscribing interface simple while centralizing transport, provenance, and capture policy.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;For Whom:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;For &amp;lt;user&amp;gt;... (considering &amp;lt;other stakeholders&amp;gt;)...&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
** For those building modular, event-driven experimental applications, especially teams where independently authored processors, interfaces, and services need to cooperate through stable contracts.&lt;br /&gt;
** For maintainers, researchers, and outside collaborators who need replayable records of component interaction sufficient for debugging, validation, and post hoc analysis.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Context:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;In a world where...&amp;quot; / &amp;quot;Keeping in mind that...&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
** Keeping in mind that small research and academic software teams often need many contributors to work in parallel before all production infrastructure is complete.&lt;br /&gt;
** Keeping in mind that junior contributors should be able to write useful processors and application components without personally implementing persistence, provenance, or transport policy.&lt;br /&gt;
** Keeping in mind that event streams and request/reply interactions between components may become important evidence when reconstructing system behavior.&lt;br /&gt;
&lt;br /&gt;
=== Considerations: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Goals:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;We aim to...&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
** Provide a local publish-subscribe API with minimal friction for ordinary component authors.&lt;br /&gt;
** Provide transport-level message identity, topic identity, writer identity, sequence numbering, and bus ingress timing.&lt;br /&gt;
** Support broad capture of messages crossing component boundaries so runs can be replayed or inspected.&lt;br /&gt;
** Support request/reply interactions without requiring direct component coupling.&lt;br /&gt;
** Support fixture playback and mock services so processors can be developed before production instruments, stores, or external integrations are ready.&lt;br /&gt;
** Allow multiple processors or interfaces to operate in parallel for comparison, A/B testing, and fault isolation.&lt;br /&gt;
** Remain self-contained enough to be used outside the initial use case application that motivated it.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Crux:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;We really need to...&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
** Make component communication simple for contributors while making message flow accountable enough for replay, debugging, and later research use.&lt;br /&gt;
** Centralize transport discipline and capture-friendly metadata without forcing every component author to understand the full governance model.&lt;br /&gt;
&lt;br /&gt;
== Framing Checklist: ==&lt;br /&gt;
We should discuss these qualities:&lt;br /&gt;
&lt;br /&gt;
* You tried on some behaviors (like empathy and rapid prototyping) on a current project before launching a new one.&lt;br /&gt;
* Project is a human, subjective challenge (understanding people is key to the project success).&lt;br /&gt;
* Project is geared toward discovery (not optimization).&lt;br /&gt;
* Challenge can be solved with a product, service, or event, not a strategy or system (for your first project).&lt;br /&gt;
* Those most affected by the work are acknowledged as actors with agency, not simply receivers of outcomes.&lt;br /&gt;
* Framing doesn’t embed a solution.&lt;br /&gt;
* Framing doesn’t (unintentionally) assume the form of the solution.&lt;br /&gt;
* Framing doesn’t (unintentionally) presume people’s needs.&lt;br /&gt;
* Goal of the project work is clear without dictating the specific solution outcome.&lt;br /&gt;
* You and your team actually care about this challenge. (If not, why are you doing it?)&lt;/div&gt;</summary>
		<author><name>Jwgranville</name></author>
	</entry>
</feed>