With cloud becoming commonplace, developers now have a vast number of ways in which they can architect their apps. They can choose to build a monolithic app for strongly consistent changes, or they can choose a microservices architecture for high agility & independence. And ofcourse, they can even use out-of-the-box hosted services for minimal dev and ops investment. But with such a cocktail of infrastructure and data sources, how do you get all the data you need quickly and securely?
Introducing Hasura Remote Joins. Remote Joins allows you to create relationships across different data sources. The data sources may expose different interfaces like GraphQL, REST or even native protocols but you can join them because of GraphQL's type system! By creating all these relationships, essentially what you have done is created a unified GraphQL API for your entire company! Combined with Hasura's permission system, you can further separate the unified graph into secure role-based views and actions on your data.
The best part is all the unification happens at the Hasura layer using declarative configuration. This means your underlying data sources & APIs can evolve independently and you get complete data federation. The join, authorization logic and consistency checks are handled by Hasura and the execution logic remains highly performant as Hasura "pushes down" the heavy-lifting to the underlying sources as much as possible. With Remote Joins, Hasura will be a revolutionary solution in providing data agility to your teams and allow you to completely harness the power of your data.