The GraphQL API is added on the server as a Duniter module.
The GraphQL API is added on the server as a Duniter module.
As this module add cpu and network charge on the Duniter node, it is optional.
### New NoSQL Database
The good practice to handle data in databases, is:
- To use **relational database** to **write normalized data** (very fast to update an entity as entities are in separate tables).
- To use **document database (NoSQL database)** to **request denormalized data** (very fast as all entities information are agregated in one document).
So the module will:
-**Write normalized data** in the Duniter database as usual.
-**Write denormalized json documents** in a dedicated document database.
-**Search/Request denormalized json documents** from the dedicated document database.
We need to create a new database, handling **denormalized json documents** (NoSQL Database).
Since version 3.9, **Sqlite3** has an extension (**json1**) to handle json documents: