Goals:
Flexibility, expandability and scalability
Data integrity and security (encryption)
RBAC
Easy migration (up/down)
Fast and optimized performance (minimize read/write)
Unit testing
Documentation.
Architecture: