The primary ambition of Snurra is to make it easier to see what is happening inside your program, mock external dependencies and to verify behavior.
Snurra tries looks upon the API consumer like a user, rather than a developer that can be expected to fiddle around with unclear interfaces and vague documentation.
Snurra tries to expose vanilla node streams as cleanly as possible and not abstract them away from the user, so that the user can take advantage of node stream documentation and stream manipulation libraries like highland.js. It is willing to sacrifice being terse or hand-holding in order to be understandable and re-usable.
Snurra cares about the what, not the who. It does not make an ambition to log or control the senders of messages - it's just concerned with the messages, and does not know anything about the sender. Instead, adds metadata to streams to detect that kind of flow. The topic streams are where snurra start and ends.