Architecture
Introduction
Compared to Hasura v2, a fundamental architecture improvement was bought into Hasura DDN where the buildtime and runtime are separated into distinct components. The Control Plane builds the project's metadata and makes it available for the Hasura DDN engine running on the Data Plane.
Control Plane
Developers interact with the Hasura DDN Control Plane to create supergraph builds. Each supergraph build produces a unique GraphQL API, hosted by the Data Plane. As a developer, you use the Hasura console on the Control Plane to visualize the supergraph and interact with the GraphQL API.
The Control Plane also provides monitoring and observability features. The console lets you add collaborators so that you can invite other developers to contribute to the supergraph and also to share the GraphQL API with consumers.
The Control Plane enables preview deployments, in the form of builds, by accepting your project metadata and making it available to the Data Plane in a format optimized for the Hasura DDN Engine runtime.
Each build you create will results in a unique, immutable GraphQL API that can be used to execute operations independently, without affecting any other builds.
The Control Plane processes observability data sent by the Data Plane and makes it available for consumption on the console. This includes traces for every GraphQL operation executed and overall metrics on API usage.
Data Plane
The Hasura DDN Engine and the data connectors run on the Data Plane. The Hasura DDN Data Plane runs an enhanced version of the DDN engine which is capable of serving multiple GraphQL APIs at the same time. It is a serverless-like runtime where the configuration for executing a GraphQL request is loaded on-demand and is discarded after processing the request. This makes the runtime extremely efficient and highly scalable.
Certain connectors also makes use of similar strategies to efficiently handle connection pools, only creating them on-demand.
The Data Plane can be deployed across multiple regions, enabling API requests to be routed to the nearest client location for optimal latency through advanced load-balancing with Anycast IP addresses.
This feature is readily available on GCP, AWS, and Azure, and can also be deployed on self-hosted Hasura DDN, provided the infrastructure supports the necessary network capabilities.