domain modeling and infrastructure abstraction library