Is it totally forbidden (or just inappropriate) for the domain model in CQRS to return state to the client? e.g. if live updated information exists in the domain model. I'm thinking of a command causing events and changes to the domain model and returning info to the client.
The alternatives seem to be:
the client determines the updated state itself (duplication of code), which should hopefully match the eventual update of the read model,
the client waits for the read model to be updated (eventual consistency) and somehow knows when to read from there to update its state, or
the whole command is done synchronously and the read model somehow pushes the information to the client, e.g. with some sort of web socket.
I guess the latter relates to the desire to build reactive applications incorporating CQRS. The notion of the client polling for updates seem unsatisfactory (and similarly for the read model polling for updates from the domain model).