Hasura Brings Power of Instant and Secure Data Federation To GraphQL; Adds Hybrid, Multi-Cloud Support

Hasura, the firm behind the popular open source GraphQL engine, is adding features to help app developers more easily connect with multiple data sources and microservices.  IDN speaks with Hasura CEO Tanmai Gopal.

Tags: API, apps, cloud, data, federation. GraphQL, joins, microservices, secure,

Tanmai Gopal, Hasura
Tanmai Gopal
co-founder and CEO
Hasura


"Our vision is to help teams instantly securely access data wherever it is, over a modern data API – GraphQL."

Intelligent Data Summit
Analytics, Apps & Data for Success in the Digital Enterprise
July 23, 2020
Online Conference

Hasura, the firm behind the popular open source GraphQL engine, is rolling out a significant enhancement focusing on delivering data federation capabilities. 

 

With Remote Joins, developers can treat data across different data sources as if it were one database without modifying or affecting the existing data sources. Remote Joins also connects to microservices.

 

These new additions also support the ability to auto-generate a production-ready GraphQL backend, which speeds development of modern, data-driven applications, according to Tanmai Gopal, co-founder and CEO of Hasura.  

 

"Our vision is to help teams instantly harness the power of the broader enterprise, by securely accessing data wherever it is, over a modern data API – GraphQL," he added. "Being able to access existing related data across independently owned systems of record is a game-changer for developer teams," 

 

GraphQL is a query language for APIs and a runtime for fulfilling those queries with existing enterprise data. GraphQL id designed to provide a complete and understandable description of the data in APIs and provides users the power to ask for exactly what they need.

 

This approach  makes it easier to evolve APIs over time, and enables powerful developer tools, Gpoal added.

How GraphQL API Simplifies Working with Data, Microservices

With so many app developers grappling with various integration techniques, IDN asked Gopal how to works hands-on to connect with both data and microservices. 

 

"Hasura is most analogous to a data virtualization approach," Gopal said. He detailed each use case.  

  • On connecting Hasura to the database, Hasura can introspect the database and allows the user to create metadata to add mapping, relationships and security rules to the data models that exist. 
  • On connecting Hasura to microservices, Hasura takes the API spec as input and allows the user to define metadata. 

Gopal also detailed to IDN how the GraphQL API handles multiple data sources to deliver benefits often associated with data federation.   

 

"Multiple data sources already exist in an organization and are managed by independent authorities and could be spread across the org in different teams and across different services (for example, your user data could be in your Postgres database and the payment data in Stripe)," he told IDN. 

 

"Hasura acts like a data gateway that connects to these data sources without affecting them or requiring them to adhere to any spec or changes. We call this data federation as Hasura becomes the central point where you can configure relationships between these data sources and expose a unified GraphQL API to fetch related information across these sources that are managed and operated independently, and hence data federation," Gopal added. 

 

For simplicity, the update lets developers simply point and click to create relationships between data models across different data sources - and enables access through a unified GraphQL API. Developers can also avoid writing code to build APIs and connect data, he said.  

 

"A developer will typically spend several hours to understand each of these data sources, the performance implications of how to efficiently query them and to set up the security rules for each of these models in these data sources. Then, developers need to build an API to connect across these data sources," Gopal explained. 

 

"This is a lot of expertise and time-consuming integration work required to be done before developers can even get productive trying to access the data to build something useful," he added. 

APIs Drive GraphQL’s Data Federation, Change Management   

Gopal detailed for IDN some of the features he considers game-changing:   

 

"Developers can build and ship capabilities that add value to their users within minutes by leveraging relationships in their user data where it is right now, even if the data they need spans multiple independent domains. Hasura provides the right API, as well as data change management, security, observability, audit and performance controls to make this possible in an enterprise environment," he said. 

 

Technically, the data federation capabilities are enabled in this way:

Data sources may expose different interfaces like GraphQL, REST or even native protocols, but developers can join them together using GraphQL's type system. By creating these relationships, a unified GraphQL API can be created for consistent and secure data access for the entire organization. When combined with Hasura's robust and granular permissions system, developers can more easily provide role-based views and actions on the data using a unified security model.

By using Hasura's declarative configuration, the underlying data sources and APIs can evolve independently while maintaining a unified and consistent API to applications. The join, authorization logic and consistency checks are handled by Hasura. The execution logic remains highly performant as Hasura "pushes down" the heavy lifting to the underlying data sources as much as possible. Organizations can enjoy the flexibility of complete data federation without performance penalties. 

Under the covers, metadata plays a valuable role, Gopal noted.  

 

"This metadata allows creating relationships between the upstream models (databases or microservices) and adding security rules to them. For example, a model in the database can be connected to a model from a REST microservice. Hasura then uses this metadata configuration to present a GraphQL API," Gopal told IDN. 

 

 When a GraphQL API call hits the Hasura server, he added, Hasura's query engine knows if that API call can be processed, adds security rules and makes upstream requests to the database (by compiling an efficient SQL query say) or upstream API calls to the upstream microservices. "Hasura then joins this data and presents it as a JSON response to the GraphQL API," he said. 

 

API consumers also get benefits from the update, Gopal told IDN. In specific, consumers can discover related data faster and make more efficient API calls. 

 

"GraphQL gives API consumers control of the precise slices of data that they want to access. However, developers will still need to build a GraphQL server to get a GraphQL API. Hasura makes the GraphQL API instant, by connecting to these data sources and allows developers to set and connect these data sources easily in a point and click manner," he added. 

 

All this is available without setting up and building the GraphQL server, Gopal said, adding to the simplicity and speed of tasks. 

 

Remote Joins is in a public beta. GraphQL has tens of millions of downloads and more than 17,000 GitHub stars. 

Hasura Cloud Optimizes GraphQL for Hybrid, Multi-Cloud Environments 

Hasura also announced Hasura Cloud, designed to enable developers to use unified GraphQL API to access data across hybrid- and multi-cloud environments.

 

Hasura Cloud, based on enterprise-grade Hasura Pro, brings new cloud-specific functionality, including data federation, dynamic data caching, auto-scaling, global availability and consumption-based pricing.  

Combined, these features help organizations create data-driven applications without costly investments in infrastructure or operational management, Gopal added.  

 

“We know that organizations of all kinds want to use modern APIs to connect data to applications. . .  It’s been the number one request from customers looking for the fastest possible experience,” he said.   With Hasura Cloud organizations can bridge new and old datasets regardless of location. This allows developers to quickly build new applications -- without needing to migrate large legacy datasets or getting locked into a specific vendor’s data platform, he added.

 

Vendors in the cloud app ecosystem are giving Hasura Cloud a thumbs up.

 

“Enterprises building cloud-based applications want to easily create data-driven APIs, without lengthy and expensive data migration exercises or building monolithic data warehouses. “Hasura Cloud is designed to solve this need,  said James Governor, RedMonk co-founder in a statement.  

 

Damien Tanner, CTO of Konf.co also added “Hasura’s GraphQL engine is at the core of our infrastructure, and one of the most impressive features is its ability to scale horizontally. Having scaling handled automatically by Hasura Cloud will give us peace of mind that we can handle spikes in demand without manual effort.”

 




back