-
General buffer behavior
- API same as riak_kv_fold_buffer.
- Allow for expected set of operations without awareness of internal details
- Then have a fold_buffer or kv_buffer that handles kv tasks such as key listing
- Handoff buffer can handle dealing properly with accumulating handoff results
{Socket, ParentPid, Module, TcpMod, ?ACK_COUNT, Total, Err}
-
No explicit flush fun specification. Flush function is determined when buffer is created only.
-
Factor out shared code of fold fun wrapping for list_keys, list_buckets, index_query, and legacy key listing functions.
- Restore async capability - usort of capabilities from composing backends
- For mixed case of sync and asyc, wrap sync results in fun that can be returned by async worker.