Architecture & Modelling
Modelling Philosophy
Cinnamon Consolidation & Accounting data modelling follows precise rules. For integrators and integration developers, this leads to a flat learning curve. For core developers, it maximizes code reuse and reliability.
Investment structure and financial instruments follow object oriented design, sharing common features.
All first class objects share a common identification and serialisation/deserialisation mechanism.
In the persistence layer, references by technical keys ensure referential integrity and performance.
In the API layer, references by identifiers ensure simplicity and adherence to REST principles.
In the logic layer, references are resolved and the graph for an object is always complete.
Attributes controlling behaviour (e.g. an investment type) are statically modelled.
Attributes only relevant for analysis, reporting and accounting (e.g. an investment category) are extensible and unlimited.
Complex objects (e.g. charts of accounts) not benefitting from relational modelling are persisted directly as JSON documents.