Skip to content

Instantly share code, notes, and snippets.



Last active Jun 3, 2020
What would you like to do?
Expected Qualities of a Modern Data Access Layer backed by an RDBMS (Personal Opinion)
  1. High-Level and Accessible: Data should be made available via an API which doesn't require any (1) proprietary, idiosyncratic access technology, (2) custom query language, (3) a particular language, or (4) a particular run-time environment. In other words, users should be able to issue queries using a query language, over a communication protocol and on a run-time environment which they already are familiar with and be able to possess and maintain comfortably on a personal computer with minimal effort and no extra costs.
  2. Liberal: Consumers should be able to issue read/write queries which may involve filtering, searching, sorting, composing and lensing without limitations even in the existence of deeply relational data models, as long as they are authorised to read/write data of interest .
  3. Performant: The evaluation performance of a query should be proportionally related to the essential complexity of the data model. Furthermore, the base performance should be good enough to liberally issue queries without worrying too much about performance imposed by the underlying technology, notwithstanding requiring query optimisations at the query-side in some cases/contexts.
  4. Authorised: All data should be authorised at the row and column levels. Such authorisation machinery should be a built-in functionality of the database access layer to avoid a separate realm of encoding authorisation rules. Once an issued query starts being interpreted, it should be authorised without the need of a procedural intervention: Authorisation should be embedded in the query interpreter (ideally backed by relational algebra capabilities of the RDBMS) as a part of the evaluation process.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment