* Database schemas - warehouse, OLAP, and (planned) the ETL script between them.
* Application models (for ORM etc) - the rails one is implemented.
* Code generation for serialization / deserialization from the shared domain model.
* (planned) automatic query extraction from type-safe templates (you write your template in terms of the domain model, and it gets automatically compiled into a set of database queries which supply the data it needs).
It's hard to learn, which is a hefty up-front price to pay, but it neatly avoids a ton of work 12+ months down the track.
Core idea is to start from a human-authored formal domain model (sample models: https://github.com/cjheath/activefacts-examples/blob/master/... ) and generate:
* Database schemas - warehouse, OLAP, and (planned) the ETL script between them. * Application models (for ORM etc) - the rails one is implemented. * Code generation for serialization / deserialization from the shared domain model. * (planned) automatic query extraction from type-safe templates (you write your template in terms of the domain model, and it gets automatically compiled into a set of database queries which supply the data it needs).
It's hard to learn, which is a hefty up-front price to pay, but it neatly avoids a ton of work 12+ months down the track.