One possibility is a loosely-connected pub-sub model that allows N publishers talk to N subscribers, using the pipe as sync point. Thus:
A writer would block until there is at least one reader.
Each reader to a specific pipe would get all messages written to it.
A reader would get all data from a specific writer, or none of it. That is, a reader that missed message #1 from a writer would discard or skip all later messages.
Solution: define these semantics.
One possibility is a loosely-connected pub-sub model that allows N publishers talk to N subscribers, using the pipe as sync point. Thus: