jonsequitur / Its.Cqrs

A set of libraries for CQRS and Event Sourcing, with a Domain-Driven Design flavor.
Other
77 stars 21 forks source link

Split ICommandScheduler<T> interface in two #160

Closed jonsequitur closed 8 years ago

jonsequitur commented 8 years ago

There are a number of changes here toward trying to unify and simplify the command scheduler. The eventual goal is to bring the in-memory and SQL-based command scheduler infrastructure to parity in terms of capabilities, and to run them through the same test suite. The test changes here are a tactical move in that direction.

It's worth merging at this stage because of a few bug fixes that emerged along the way, and a design change to split ICommandScheduler<T> into two interfaces:

  public interface ICommandScheduler<out TTarget>
    {
        Task Schedule(IScheduledCommand<TTarget> scheduledCommand);
    }

and

  public interface ICommandDeliverer<out TTarget>
    {
        Task Deliver(IScheduledCommand<TTarget> scheduledCommand);
    }

ICommandDeliverer<T> and some of the associated methods could use better names. Suggestions are welcome.