A bunch of notes and observations on working and designing microservices. There are not many assumptions in the text except the perspective of functional programming (F# in this case).
- Commands trigger workflows.
- Workflows are the keys of business logic. They glue together I/O reads with functions that manipulate the domain objects on which I/O writes are performed afterwards.
- The reason they can accept other functions (dependencies) means they can use mocked domain types.
- Domain types should be strongly typed. Raw strings, bools, or ints should prohibited.
DateTimecan be too vague in some cases when domain logic only allows dates in the future.