Hi Dimitrios,
Just some food for thought. Consider me like the 10th man in the movie World War Z [*1] ...
How are you organizing your logic? Do you have a rich domain model, or are you basing your solution on another pattern / architecture? You seem to mention "aggregates" a lot, so is it an "aggregate-driven design" focused on transactions and eventual consistency? The way you describe "submitting a Form (aggregate) and produces an Entry (aggregate)", makes me think it might as well be a transaction script, or a unit of computation in a functional paradigm.
I sense a focus on architectures, technologies, patterns, layers and wiring, instead of a focus on modeling your domain problem in code.
Perhaps consider that if you do create a rich domain model, without
regards for persistence and UI, you could have an initial working system
driven by tests that fulfilled the features (and constraints) you list,
in a few days. THEN refactor for concurrency and consistency, and layers, service boundaries and technologies, and a clearer model. Instead of a single strategy, you can consider how each part and interaction in your model, is consistent and supports concurrency in terms of the particular business scenario.
If you want, feel free to send me an email to chat about any of this.
Best regards,
Aryeh
[1]
https://www.quora.com/World-War-Z-2013-movie-Do-the-Israelis-really-have-a-10th-man-doctrine