Enabling an elegant real-time solution for a development studio building a cryptocurrency product.
Pixel Point is a digital design agency combining web design, AI and Blockchain. They provide turnkey application development services - from planning and building MVP versions to producing high load applications, with support throughout. They’ve built products for large multi national corporations such as KLM, Unilever, eBay, Cisco and VMware.
Recently, Pixel Point worked very closely with Plutus, a UK based Blockchain fintech startup to build out an application that facilitates shopping with cryptocurrency. Pixel Point’s co-founder, Alex Barashkov, supervised this project and currently serves as the product manager and architect for Plutus.
Adopting GraphQL & Hasura
Pixel Point decided to use Postgres for the Plutus application, as it was a financial application and would involve lots of transactions. They also decided to use GraphQL, so that they would be able to iterate faster.
Plutus required heavy use of real-time updates. In Pixel Point’s experience, realtime updates did not have an elegant solution. It was possible to implement it using websockets, however, it was a solution that required a lot of effort and was not very reusable.
Pixel Point had a custom solution that worked for the initial version, but they were on the lookout for technologies they could use in a long term, production grade system. Over time, Plutus had created a list of requirements that they wanted from a solution and the Hasura feature set seemed to fit the bill perfectly.
Hasura supported realtime and Pixel Point were very impressed by Hasura’s performance. Integrating authorization with realtime was especially useful, because that becomes hairy and error prone quickly, and Hasura’s access control made this easy for the. They also felt it would easy to migrate from their existing backed to Hasura and start using GraphQL:
- Their backend was built with Docker and K8s, making it easy to integrate with Hasura.
- They used Auth0, making it simple to migrate to Hasura, without having to worry about exposing data.
- Their microservices based backend architecture was built on Postgres with a lot of database level triggers, constraints and complicated business logic. They could start using Hasura with their database instantly, without having to modify any of their current work.
In Alex’s opinion, adopting Hasura reduced the development time for the realtime implementation from 1 month down to two weeks, and gave them a scalable, sustainable stack.
- Almost no backend coding was required, most of the setup was done using the Hasura UI.
- Backend devs and frontend devs did not need to write APIs for querying the database, or integrate websockets, cutting down on a significant amount of work.
- Migrating to a GraphQL API cut down on a huge amount of documentation.
Once Hasura announced event triggers, they even refactored some of their less scalable microservices to use serverless functions triggered by Hasura events.
Plutus will be getting a lot of features over the coming weeks and months. To keep up with their progress, you can follow them on Twitter.
This case study was prepared basis a discussion with Alex Barashkov, Product Manager and Architect at Plutus, and Co-founder at Pixel Point. Alex has written previously about his experience with Hasura here.