--- /dev/null
+
+digraph G {
+ rankdir = LR
+
+ node
+ [
+ fontname = "Inconsolata"
+ fontsize = 20
+ shape = record
+ style = rounded
+ margin = "0.2,0.2"
+ ]
+
+ edge
+ [
+ fontname = "Inconsolata"
+ fontsize = 18
+ arrowhead = vee
+ arrowtail = vee
+ arrowsize = 2
+ ]
+
+ "Event source 1" -> "Wait for\nan event\nto happen"
+ "Event source 2" -> "Wait for\nan event\nto happen"
+ "Event source N" -> "Wait for\nan event\nto happen"
+
+ "Wait for\nan event\nto happen" -> "Demultiplex and\ndispatch events" [tailport="n", headport="n"]
+ "Demultiplex and\ndispatch events" -> "Wait for\nan event\nto happen" [tailport="s", headport="s"]
+
+ "Demultiplex and\ndispatch events" -> "Event handler 1"
+ "Demultiplex and\ndispatch events" -> "Event handler 2"
+ "Demultiplex and\ndispatch events" -> "Event handler M"
+
+
+ "Demultiplex and\ndispatch events" [style="rounded,filled",fillcolor="#FFFF88"]
+}
+