Module Make.Spoolable

module Metadata : sig ... end

Spoolable.Metadata.t should be smallish since it is read and written more frequently than Spoolable.Data.t.

module Data : sig ... end

Spoolable.Data.t is where the "real" data lives and it allows for data-specific load and save functionality.

module Queue : sig ... end

Queue.t is an enumerable type that represents the available queues and the mapping to directory names on-disk.

module Name_generator : Async_smtp__.Multispool_intf.Name_generator.S
module Throttle : sig ... end

All operations that touch disk are passed through Throttle.enqueue