Nutrien needed to accelerate the development of their digital hub platform
With a mission to help farmers sustainably increase food production through technology, Nutrien set out on an ambitious goal — to launch an omnichannel(web, iOS, Android) customer product portal called a digital hub to give customers a complete overview and control of their agronomic and business needs.
As a 150-year-old company, they faced many challenges as they embarked on this digital transformation project. The most complex challenge was the plethora of data and APIs scattered across different business domains. To provide a better customer experience, they needed to integrate all this information from their strategic business functions to a single unified platform. In addition, they needed a powerful solution to describe all their data, serve multiple clients, and be highly reliable and scalable.
Some of the issues they faced when embarking on this project were:
As a merger of several companies and a network of over 2,000 retail locations across multiple business functions and partners, Nutrien had data in numerous back-end sources, which became complex to manage. They needed a way to unify all that data into a single layer for clients to consume.
Inconsistent REST APIs across Nutrien's existing applications were a common support issue. Every time a new application was onboarded, they had to set up or modify REST API endpoints, which led to many inconsistencies in the API. Additionally, REST APIs created by different teams used inconsistent approaches despite Nutrien’s efforts to discourage them. Ultimately, they needed a unified and consistent API solution that would be easy to consume and flexible enough to onboard different client applications without causing downtime.
Nutrien observed that their development teams spent considerable effort building duplicative data-fetching code and aggregation layers to support their product needs, which put a strain on their product delivery time. They needed a solution to abstract the redundant API creation process and allow developers to build faster.
With their current technological stack, the Nutrien team saw low developer productivity. It became complex for their development teams to handle the increased operational and support burden of maintaining multiple REST APIs. Developers were also unexcited by the outdated integration systems they were currently using. Ultimately, Nutrien needed to eliminate the complexity and maintenance required to maintain multiple API responses across different clients and expose developers to new technology, allowing them to be productive.
Lead Quality Engineer, Nutrien
Hasura Cloud's instant GraphQL APIs streamlined and unified Nutrien's data layer.
Nutrien decided to implement GraphQL as the data access layer for their digital hub solution because it solved many of the data inconsistency and development velocity challenges. In their search for a GraphQL provider, they came across Hasura, ran a test implementation that provided promising results, and decided to use Hasura to power their GraphQL layer for the following reasons.
Nutrien architecture diagram
Hasura's easy-to-use interface and clean documentation made it easy for them to set up and connect their Amazon Aurora PostgreSQL database. The seamless onboarding process also reduced their initial setup time and cost.
Nutrien utilized Hasura’s instant GraphQL APIs on all its data sources. By creating a table on their database, they had instant GraphQL APIs with features such as aggregates and permissions. In addition, Hasura took care of Nutriens' API data layer, freeing their developers to focus on architecture and custom business logic, which saved them development and maintenance time.
Hasura's support for remote schemas enabled Nutrien to integrate previously separated and siloed back-end systems. They could merge data, models, and schema across their different business functions into a unified data access layer for clients to consume.
Hasura's role-based access control (RBAC) capabilities with multi-tenancy support (which enabled security across shared infrastructure) ensured that sensitive data was only available to the right people. It also saved them significant development time if they had to implement the feature themselves.
Hasura Actions provided a quick and easy way to connect existing REST APIs to their unified Graph API. They could write custom business logic, wrap them around REST APIs, and easily integrate them with the unified GraphQL API. Hasura Actions allowed them to abstract the cumbersome and inconsistent REST API layer and provide a single federated GraphQL API for clients to consume.
With the help of Hasura, Nutrien has completed it’s digital hub project in less than a year. They have launched their omnichannel one-stop digital hub platform, allowing their customers to manage accounts, services, products, and payments across all online platforms. Some of the other benefits Nutrien attributed to using Hasura include:
Nutrien was able to unify its data access layer using Hasura. In addition, by utilizing Hasura-powered GraphQL APIs, they improved the cohesion of their back-end services, abstracting away multiple back-end systems from their client applications.
Utilizing Hasura Cloud, Nutrien provided a simplified GraphQL API for all their clients. As a result, they could move away from inconsistent REST APIs, and all clients could connect to a single unified API. Consumers of their APIs could explore the graph and build new features more quickly. Hasura's GraphQL APIs also offered Nutrien an API standardization level they hadn't been able to embrace in the past.
With Hasura Cloud, Nutrien accelerated its development time from months to days. Hasura-powered GraphQL APIs allowed their teams to iterate on features faster and more independently while improving cross-team communication and collaboration.
Nutrien saw a boost in developer productivity using Hasura Cloud in their tech stack. Developers no longer have to build repetitive CRUD APIs and are excited about upskilling and focusing on new technologies. Hasura Cloud also provided simplified deployment pipelines, and Nutrien developers experienced minimum maintenance and DevOps efforts using Hasura.
At an organizational level, GraphQL and Hasura specifically propelled Nutrien to come to a mutual understanding of the data types, models, and terminology used across their different services. Because of this, they could have more streamlined conversations about data problems and solutions.
As the world's premier provider of crop inputs, services, and solutions, Nutrien will continue to strive to stay competitive, and find innovative ways to build for its customers. Nutrien is a company driven by a purpose — to use technology to solve significant challenges in the agricultural sector.
The Nutrien Digital Product Development team continues to work with Hasura to build on that mission.