https://aruva.medium.com/cqrs-command-query-responsibility-segregation-when-one-model-is-not-enough-c1c8dedd0ea6