graphql-engine/server/documentation
Antoine Leblanc 8a999bd44d Structural updates to the server's engineering documentation
### Description

This PR does several things:
- it cleans up some structural issues with the engineering documentation:
  - it harmonizes the table of contents structure across different files
  - adds a link to the bigquery documentation
  - moves some files to a new `deep-dives` subfolder
  - puts a title at the top of each page to avoid github assuming their title is "table of contents"
- it pre-fills the glossary with a long list of words that could use an entry (all empty for now)
- it adds the only remaining relevant server file from [hasura-internal's wiki](https://github.com/hasura/graphql-engine-internal/wiki): the old "multiple backends architecture" file

### Discussion

A few things worth discussing in the scope of this PR:
- is it worth migrating old documentation such as the multiple backends architecture, that document a decision process rather instead of being up-to-date reflections of the code? are we planning to delete hasura-internal?
- should we focus instead on _new_ documentation, aimed to be kept up to date?
- are there other old documents we want to move in here, or is that it?
- is this glossary structure ok, or would a purely alphabetical structure make sense?
- does it make sense to have the glossary only in the engineering section? more generally, _what's our broader plan for documentation_?

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4537
GitOrigin-RevId: c2b674657b19af7a75f66a2a304c80c30f5b0afb
2022-05-30 09:46:06 +00:00
..
data-sources server/tests: unify HASURA_BIGQUERY_SERVICE_KEY and HASURA_BIGQUERY_SERVICE_ACCOUNT env vars 2022-03-14 07:50:35 +00:00
deep-dives Structural updates to the server's engineering documentation 2022-05-30 09:46:06 +00:00
glossary.md Structural updates to the server's engineering documentation 2022-05-30 09:46:06 +00:00
overview.md Structural updates to the server's engineering documentation 2022-05-30 09:46:06 +00:00
README.md Structural updates to the server's engineering documentation 2022-05-30 09:46:06 +00:00
tips.md Structural updates to the server's engineering documentation 2022-05-30 09:46:06 +00:00

Server engineering documentation

This page documents the structure and the internal architecture of the GraphQL Engine Server. To get started, you can read the overview. We also maintain a glossary of all the terms we use throughout the code and the documentation.

You can also get started with a list of tips and tricks.

Haddock documentation

You can browse the generated haddock documentation for the engine's code; we automatically update it on every push to a branch of interest:

Architecture deep-dive

Backend-specific documentation

Notes

In our Haskell codebase, we use GHC-style notes for long-form comments detailing a specific aspect of the codebase. We gather all of them, as of the main branch, in the notes subfolder.

Updating this documentation

All markdown files in this folder are either copied verbatim from server/documentation or generated as part of our CI; do not open a PR to modify files in the gh-pages branch, and instead modify their source directly. Notes are extracted using the scripts/extract-nodes bash script. The haddock documentation is generated by running cabal haddock --haddock-internal --haddock-options="--ignore-all-exports".