Epic is an open source framework designed to keep your domain model implementation fully focused on the enterprise business targeted by the application, with an infrastructure ignorant fashion.
It achieves a new kind of dependency inversion, where the domain model settles at the core: everything will depend on it (even the infrastructure) while the domain model itself will be clean, mantainable and ready for reuse.
Such design comes from the consideration that an enterprise application evolves over different, indipendent axes:
- the tecnology changes with the skills of the developers involved (and too often the marketing claims of few vendors)
- the customers' requirements change as their business evolves
- the user interface evolves through the users feedback (but always depends on the handled business)
- the storage tecniques change with the load requirements and the usage patterns
- the deploy depends on marketing strategies
Complex requirements lead to complex domain models. To keep such models clean and maintainable we have to decouple them from unrelated aspects such as presentation, logging, persistence and so on.
Epic makes the scene.