Requirements
Provide a means to share information between developers and manage their interactions (concurrency control)
Provide a means to organize interactions with the repository in an adequate manner (transaction concept)
Provide a means for both synchronous/ a synchronous interactions
Provide a means to enforce integrity at will