Update architecture doc (#1130)

<!-- The PR description should answer 2 important questions: -->

### What

Include `ir` and `schema` moves and basic info on `sql` and `jsonapi`.

No functional changes.

V3_GIT_ORIGIN_REV_ID: 254fc62c8c97e8b8719fa552c34bbdf3c231a839
This commit is contained in:
Daniel Harvey 2024-09-19 15:10:51 +01:00 committed by hasura-bot
parent dd98edbc9c
commit 65460a3c4a

View File

@ -18,11 +18,14 @@ crates
│   │   ├── introspection
│   │   ├── validation
├── metadata-resolve
├── schema
│   ├── operations
│   ├── types
├── ir
├── graphql
│   ├── schema
│   │   ├── operations
│   │   ├── types
│   ├── ir
├── execute
├── jsonapi
├── sql
├── frontends
│   ├── graphql
├── engine
@ -79,12 +82,12 @@ contain additional relevant data from the schema.
Resolves and validates the input Open DDS metadata and creates intermediate
structures that are used in the `engine` crate for schema generation.
##### `schema`
##### `graphql/schema`
Provides functions to resolve the Open DDS metadata, generate the GraphQL scehma
from it, and execute queries against the schema.
##### `schema/operations`
##### `graphql/schema/operations`
Contains the logic to define and execute the operations that would be defined by
the Open DDS spec.
@ -102,7 +105,7 @@ Each module under `operations` would roughly define the following:
- Logic to parse a normalized field from the request into the defined IR format.
- Logic to execute the operation.
##### `schema/types`
##### `graphql/schema/types`
TODO: This is a bit outdated, so we should fix this.
@ -120,7 +123,7 @@ Each module under `types` defines the following:
- Logic to parse a normalized object (selection set or input value) from the
request into the defined IR format.
### `ir`
### `graphql/ir`
Responsible for combining the user input and our resolved metadata into our
intermediate representation ready to plan a request.
@ -135,6 +138,14 @@ provided metadata, including requests processing, executing requests, etc.
Entrypoints for GraphQL requests. Orchestrates parsing, validation and planning
requests.
### `sql`
Responsible for SQL frontend currently in development
### `jsonapi`
Responsible for JSONAPI frontend currently in development
#### `engine/bin`
Entry point to the program. The executable takes in a metadata file and starts