Can Strapi handle CQRS+ES out of the box?

Hello! I’m new to Strapi and this is my 1st post.

We are considering to choose a Headless CMS for our startup. I have gone thru a bunch of options and we feel Strapi as a good candidate.

But we have obsession to go away from CRUD and embrace CQRS+ES for all our core entities. We are doing this via “coding all from scratch”. I mean: We already have CQRS+ES in place, but we desire to move to a headless CMS to avoid coding every new marketing idea.

Until now, the tutorials I’ve seen show how you create a model, and then start filling and querying data (either via the interface or the API). But the it seems it treats entities as an old CRUD system.


We are a touroperator. One of our core types is “trip”. In Strapi you first create the entity, say… “trip” with a property named “title” of type string.

And then you create an object of type trip and put a title to it: “Maldives, 8 paradisiac days”. Say this creation happens on 1/jan/2021.

Then you change the title to “Maldives, your best 8 fantastic days” edited on 2/jan/2021. Say after this edition you edit this or another property 9 more times in the next days. You end up with 1 creation event and 10 modification events.


In Strapi… after editing… Do you loose the “history”? I mean: Do you “just” have the entity status? Or you have the full 1-creation + 10-edition events available to “project” them again to a new state?