I’m pretty new to F# coming from C#. I have done some tutorials like “Handling a purchase request”.
In those examples a basket is created, some methods are provided to add/remove items, validation takes place, data is sent to some services to send email etc, order is persisted, basket dies -> done.
What I don’t get is how I would do/design a longer living program. Say a “Diagram designer”. The diagram designer would consist of a lot of different items like shapes, connection lines, texts, images, drawings etc.
Would I start with a huge aggregate root like “Project”? And every change (e.g. add a shape) would lead to a new project? Or would there be some lists defined holding all the items and there is no “Project” at all?
Where do all the different items live in a functional program?
Sorry, if this is a very broad question. But it’s something I really don’t get in my head.