Implementing Domain Driven Architecture with OSGi

From Opentaps Wiki
Revision as of 18:36, 5 March 2012 by Sichen (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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!