Implementing Domain Driven Architecture with OSGi
This document is not finished yet.
Move data model out of the database to the middleware tier.
Mixed data sources -- cloud or database.
Segregate the applications by segregating the data model.
Prevent bloated software by making it truly modular: no unnecessary dependencies between modules.
Domain classes are the nouns: a Person, a Product, an Order.
Services are verbs: CreateOrder, UpdateProduct. They create or modify the domain classes. Services should be used as first class objects and passed around to perform these actions.
No foreign keys between domains (ie, OrderItem.productId should not FK to Product.productId). The Product data source might not be your database!