The RDBMS approach to ES design
Build an API for your ES that is conceptually identical to a relational Database (e.g. anything using SQL):
Using RDBMS terminology:
- "Primary keys" become a single integer, called "Entities"
- "Rows" become arrays of data, and are called "Components"
- "Tables" become lists-of-Components, and have no particular name
The executable code could live anywhere.
This approach is more theoretical than practical - the "practical" version of this is RDBMS with Code in Systems.
However, it helps to understand this "theory" before looking at the practical version, which adds some more complexity