TODO:

- The consumer code needs a much cleaner abstraction
    In the end, it's two-phase, e.g. receive message, ack message, perhaps we make this a
    first-class citizen in the API on the consumer side where the consumer calls:
    Receive() and gets the sequence of the message in question (or a specific value for
    gating/idling?) and then calls Ack/Confirm etc with the message sequence?

- Wireup DSL
- Rewrite code test first
- Verify "diamond" consumer pattern (with tests)
- Benchmark code (go test -bench=.) (with GOMAXPROCS=2 if env GOMAXPROCS=1)
- MultiWriter (and appropriate hooks into Barrier)
- Squeeze little bits of performance here and there by trying a few different things
	e.g. pointers vs structs, padding, etc.
- Investigate ways to utilize an int32 under the hood but have it be exposed as an int64?
   e.g. utilizing two int32s? This would allow us to remove the atomic statements surrounding
   i386 and ARM architecutes, but may be more effort than it's worth for our particular
   use case...

- I need to get some help doing some low-level profiling the application to find out where
  the bottlenecks are and determining how the Go scheduler is hindering performance, if at all.

- contributors
- license
- readme (Github markdown?)

- Website with cool images and documentation? (e.g. GoConvey)