New online course: CQRS in Practice

My new online training course CQRS in Practice went live.

CQRS in Practice

Some of you have already noticed that I was working on a new Pluralsight course, CQRS in Practice (I had no idea that people actually use this “Follow” feature on GitHub). Anyway, it’s finally gone live!

And it’s arguably one of my best courses to date. I usually put a lot of effort (too much, as someone told me once) into all of my courses but this one stands out from even that competition, in my opinion. In any event, definitely check it out.

Here’s a list of topics from the course:

  • Task-based vs. CRUD-based interfaces (both UI and API)
  • Commands, queries, and command/query handlers
  • Decorators on top of the command and query handlers and integrating them with ASP.NET Core
  • Separation at the domain model level
  • Separation at the database level
  • Synchronization strategies between the read and write databases
  • Common questions and misconceptions, like:
    • CQRS vs. Event Sourcing
    • CQRS vs. Specification pattern
    • Can you use a query from a command
    • Command handler decorators vs ASP.NET middleware
    • And much, much more

And of course, as usual, all the concepts I talk about in the course are not just theory, you will see a close-to-real-world software project to which all those concepts will be applied in practice.

Watch the course here: CQRS in Practice.

You can find the source code for the project on GitHub.

If you need a trial code which grants 30 days unlimited access to Pluralsight, shoot me an email and I’ll send you one.


  • Luima Rodriguez

    Best course ever!!!!!!

  • Samuel Francisco

    I din’t understand the use of singletons in the After Project. Why only process a Command or Query at a Time?

    • Vladimir Khorikov

      Do you mean the Messages class? It can process multiple commands/queries at a time.

      • Samuel Francisco

        Sorry, you’re right. The fact that it is singleton does not prevent it from having simultaneous calls to its methods. There is not any lock.

  • John Bolt

    Hey Vladmir,
    Just wanted to state that I have really benefited and enjoyed your Pluralsight courses. Thanks for all the hard work you put in and keep up the awesome work.

    • Vladimir Khorikov

      Thanks John, appreciate the kind words.

  • Edgar Knapp

    Hi Vladimir,

    Great course with lots of things to learn and ponder.

    Concerning CAP, Kleppmann argues in that because network outages are a fact of life, we cannot “choose” Partition Tolerance. So I think your point about CQRS and CAP should be rephrased as:
    On the Write Side, Consistency is foremost
    On the read sie, Availability wins
    Do you agree?

    • Vladimir Khorikov

      I agree with one caveat. Partition Tolerance means partitioning between server nodes, not the client and the server. So you can make your system AC by having only 1 server in the mix.

      And I though I phrased this trade-off more or less the way you stated it. What was the phrasing in the course?

      • Edgar Knapp

        You define Partition Tolerance as continuing operation despite communication failures between network nodes. To me, Partition Tolerance makes no sense with just a single (server) node. In fact, as Kleppmann argues, CAP is so limited in its applicability to be useless in practice, and hence we should stop referring to it.