tap> returns whether the put was successful. Another variant that would often be useful is a threaded tap-> that returns the value. Open question is what to do on failure:
Assert tap> succeeds - if tap queue is full, you will know about it, but it will also alter the behavior of your program with an assertion error
Ignore tap> result - if tap queue is full, values will be silently dropped
I'm not sure which is better, I can see both, so I made patches for both and ask for screener's opinion.
clj-2538-assert.patch - asserts tap> successful
clj-2538-drop.patch - ignores tap> result