Open alexander-yevsyukov opened 5 months ago
@alexander-yevsyukov I would go with pp. 3 and 4.
Points no.1 and no.2 do not lead to a compilation failure, which we ideally want. And they may be both expensive and restrictive in terms of GraalVM compatibility.
Now it is possible to declare an entity class with an entity state of a wrong kind. For example, it is possible to create a
Projection
with a message implementingEntityState
which has the following option declaration:Although, it does not do any harm, it's obviously a programming error. This is not what the developer intended. Moreover, keeping such errors unnoticed prevents us from introducing specific interfaces for entity states for projections, process managers, and aggregates.
Suggested actions
ProjectionState
,ProcessManagerState
, andAggregateState
interfaces which implementEntityState
.Projection
,ProcessManager
, andAggregate
classes.