This module manages a work request queue. The queue contains fulfillment type UUIDs (which identify which fulfillment implementation to run to satisfy the fulfillment) and transaction record IDs (by which information for what/how to fulfill can be retrieved). The work queue is then assigned to workers which asynchronously execute a request, aka "fulfillment".
This could be creating a new Kolab account, adjusting the quota for an existing account, scheduling data migration, etc.
Other modules such as purchasing/accounting would file work requests for fulfillment.
- A means to register fulfillment procedures mapped to a UUID with worker restrictions
- A work queue manager that oversees a worker pool
- Handling of failure to fulfill
- Handling of successful fulfillment
- Recording progress during fulfillment for longer running tasks