API
Introduction
On this page, you'll find side-by-side comparisons of the features available in Hasura v2 and Hasura DDN. Take a look at the table below to see which features are available in each version and read on to learn more about each feature.
You can see our roadmap — and engage with our team! — anytime by visiting our public roadmap.
Feature | v2 | DDN |
---|---|---|
Instant GraphQL API | ✅ | ✅ |
Multiple Data Sources | ✅ | ✅ |
Query | ✅ | ✅ |
Mutation | ✅ | ✅ (C) |
Subscription | ✅ | WIP |
Streaming | ✅ | WIP |
Aggregate Query | ✅ | ✅ (C) |
Native Query | ✅ | ✅ |
Native Mutation | ❌ | ✅ |
Action | ✅ | ✅ |
Event Trigger | ✅ | WIP |
Cron Trigger | ✅ | ❌ |
Remote Schema | ✅ | ✅ |
CI/CD | ✅ | ✅ |
Federation | ✅ | ✅ |
Apollo Federation | ✅ | ✅ |
API Limits | ✅ | WIP |
Allow Lists | ✅ | ✅ |
Permissions | ✅ | ✅ |
Authentication Integrations | ✅ | ✅ |
Admin Secret | ✅ | ❌ |
Relay API | ✅ | ✅ |
RESTified Endpoints | ✅ | WIP |
Schema Registry | ✅ | ✅ |
Read Replica | ✅ (EE) | ✅ |
Caching | ✅ (EE) | WIP |
*EE: Available on Cloud and Enterprise editions only.
*C: Supported by the individual connector.
Features
Instant GraphQL API
In Hasura v2, you added a connection string to your project and Hasura instantly generated a GraphQL API.
In Hasura DDN, this is also true! However, you're now given more flexibility and have the tools to rapidly iterate and expand that API to include a dynamic range of sources. With Hasura DDN, you generate this API using a code-first declarative experience — assisted by the CLI — instead of the console as in v2.
You can learn more about the GraphQL API here.
Multiple Data Sources
In Hasura v2, connecting data sources involved configuring Hasura to connect to your database and setting up the necessary permissions and relationships within the console. This enabled Hasura to generate a GraphQL API based on your database schema.
In Hasura DDN, connecting data sources is simplified and more flexible. You can easily connect multiple types of data sources, including relational databases, REST APIs, and other GraphQL services, all using a concept called native data connectors. This expanded capability allows for more diverse and comprehensive data integration, facilitating a more unified API experience. You can learn more about what native data connectors we offer on the Connector Hub, or build your own using one of our SDKs.
The modular architecture of Hasura DDN ensures that changes in one part of the API do not negatively impact others, allowing for greater autonomy and flexibility in development.
Further, you can easily configure all your relationships and permissions using a simple declarative syntax. Our Hasura VS Code extension makes this easier than ever with scaffolding, auto-completion, and validation — ensuring your metadata is consistent and up-to-date before you ship it to prod.
Query
In Hasura v2, queries allowed you to fetch data from your connected databases through the auto-generated GraphQL API.
In Hasura DDN, querying remains a core functionality. The querying process has been enhanced with additional features and optimizations, making data retrieval faster and more efficient. Learn more about GraphQL queries here.
Mutation
In Hasura v2, mutations enabled you to modify data in your connected databases using the auto-generated GraphQL API.
In Hasura DDN, mutations continue to play a critical role. Certain connectors provide auto-generate mutations out of the box. For others, you can use a lambda connector or native mutation. Learn more about GraphQL mutations here.
Subscription
In Hasura v2, for some data sources, subscriptions provided real-time updates by automatically sending data changes to the client.
In Hasura DDN, subscriptions are currently a work in progress (WIP). The feature is being redesigned to offer even better real-time capabilities and more flexible integration options.
Streaming
In Hasura v2, streaming queries allowed for fetching data in a continuous manner, suitable for real-time use cases.
In Hasura DDN, streaming is also a work in progress (WIP), with plans to enhance the streaming capabilities for more robust and scalable real-time data delivery.
Aggregate Query
In Hasura v2, aggregate queries enabled you to perform operations like counting, summing, and averaging on your data.
In Hasura DDN, aggregate queries are fully supported yet differ slightly from the v2 aggregates API. You can learn more about them here.
Native Query
In Hasura v2, native queries allowed direct interaction with the underlying database through custom SQL.
In Hasura DDN, native queries are fully supported, enabling complex data retrieval operations directly within your API. Check out an example in our PostgreSQL docs.
Native Mutation
In Hasura v2, native mutations were not supported, limiting the ability to perform direct modifications on the database.
In Hasura DDN, native mutations are now supported, providing more flexibility for advanced data operations. As an example, learn more about them via the PostgreSQL connector docs.
Action
In Hasura v2, Actions allowed you to integrate REST APIs or define custom business logic that could be executed as part of your GraphQL API. You could quickly and easily integrate OpenAPI-compliant services and expose them as Actions using the console. This feature enabled bringing in existing REST APIs and extending the functionality of the API beyond what was directly available through the database schema.
In Hasura DDN, lambda connectors take the place of Actions. These connectors allow you to define more complex business logic, enabling the enrichment and transformation of your data, and seamlessly integrate it with other services via your existing API. These functions are introspected by Hasura DDN and then exposed as part of your GraphQL API. Currently, we support business logic via the TypeScript and Python connectors.
You can also use the OpenAPI connector to immediately integrate any OpenAPI-compliant APIs into your supergraph.
This setup allows for the creation of richer and more dynamic APIs that can handle a wide range of business requirements. And, we'll host it all for you 🎉
Event Trigger
In Hasura v2, event triggers allowed you to automatically trigger webhooks based on changes in your database.
In Hasura DDN, event triggers are currently a work in progress (WIP), with plans to integrate plugin support for even more customizable triggers.
Cron Trigger
In Hasura v2, cron triggers allowed you to schedule periodic tasks that would trigger specific operations within your API.
In Hasura DDN, cron triggers are not supported.
Remote Schema
In Hasura v2, Remote Schemas allowed you to stitch together multiple GraphQL schemas into a single unified API.
In Hasura DDN, remote GraphQL schemas are easier to manage and integrate using the GraphQL API data connector. This means external GraphQL APIs are treated like any other data source and have the full assortment of permissions and relationships at your disposal out of the box.
CI/CD
In Hasura v2, CI/CD was possible using the Hasura CLI in addition to a GitHub integration for automated deployments to Hasura Cloud.
In Hasura DDN, CI/CD is fully supported — in fact, we built it into the core of the product using the concept of immutable builds. This allows you to iteratively develop and test your API in a safe and controlled manner, ensuring that changes are propagated seamlessly across all environments and easily tested before deployment.
Federation
In Hasura v2, federation was possible using a number of different methods, including stitching together multiple Hasura instances, creating an API gateway, or instituting a multi-protocol approach.
In Hasura DDN, federation is fully supported — just like CI/CD, it's built into the core of the product. We use the concept of subgraphs to allow you to create a unified API across independent teams and services, ensuring that each subgraph can be developed and deployed independently while still being part of a larger, cohesive API.
Apollo Federation
In Hasura v2, Apollo Federation was supported for creating a unified API across multiple services.
In Hasura DDN, Apollo Federation is supported. To know more, please check these docs.
API Limits
In Hasura v2, API limits were available to help manage and control the usage of your API.
In Hasura DDN, API limits are not supported.
Allow Lists
In Hasura v2, allow lists were available to restrict access to specific queries and mutations. This feature was useful for controlling access to sensitive data or operations.
In Hasura DDN, allow lists can be generated using Engine Plugins.
Permissions
In Hasura v2, permissions were available to control access to your data and operations, ensuring that only authorized users could interact with your API.
In Hasura DDN, permissions are fully supported. You can define permissions at the model, field, and command level, allowing for fine-grained control over who can access your data and what they can do with it. Learn more about permissions here.
Authentication Integrations
In Hasura v2, authentication integrations were available to authenticate users and control access to your API. Hasura v2 supported a variety of authentication providers, including Auth0, Firebase, and custom JWT.
In Hasura DDN, authentication integrations are fully supported. You can authenticate users using a variety of providers via webhooks or JWTs.
Admin Secret
In Hasura v2, the admin secret was used to authenticate requests to the Hasura API, allowing you to perform administrative tasks.
In Hasura DDN, the admin secret is not supported. Instead, you can use create an admin-level token to perform administrative tasks.
Relay API
In Hasura v2, the Relay API was supported, allowing you to use Relay-specific features and optimizations in your GraphQL API.
In Hasura DDN, the Relay API is fully supported. You can use Relay-specific features and optimizations in your GraphQL API, ensuring that your API is compatible with Relay clients.
RESTified Endpoints
In Hasura v2, RESTified endpoints were available to expose your GraphQL API as a REST API.
In Hasura DDN, RESTified endpoints are currently a work in progress (WIP), with plans to introduce more advanced REST API capabilities soon.
Schema Registry
In Hasura v2, the schema registry was available to track changes to your API schema and metadata. This feature was useful for auditing and versioning your API.
In Hasura DDN, the schema registry is fully supported. Our schema diffing feature allows you to track changes to your API schema and metadata, ensuring that you're always in control of your API's evolution.
Read Replica
In Hasura v2, read replicas were available only on Cloud and Enterprise Editions, providing improved read performance and redundancy.
In Hasura DDN, read replicas are fully supported, ensuring high availability and performance.
Caching
In Hasura v2, caching was available only on Cloud and Enterprise Editions, allowing you to cache query results for faster response times.
In Hasura DDN, caching is currently a work in progress (WIP), with plans to introduce more advanced caching mechanisms.