diff --git a/rfc/0003 RFC GraphQL API for Duniter Clients.md b/rfc/0003 RFC GraphQL API for Duniter Clients.md index a4fad5a1f70e83975499ea51268b030412ad3635..d515d13b8b5eacbc869fc0b9a1b3f807d82d7c63 100644 --- a/rfc/0003 RFC GraphQL API for Duniter Clients.md +++ b/rfc/0003 RFC GraphQL API for Duniter Clients.md @@ -339,33 +339,6 @@ Variables: ## Duniter Server 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: - -https://sqlite.org/json1.html - -http://charlesleifer.com/blog/using-the-sqlite-json1-and-fts5-extensions-with-python/ - -So we don't need another database software dependency. - -The module will create another Sqlite3 file `gva_documents.db` to keep things well separated. ### ENDPOINTS format