Skip to content

This repository encompasses all the steps that are needed for setting up the new Hypha DHO backend

Notifications You must be signed in to change notification settings

hypha-dao/hypha-dho-graphql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Hypha DHO GraphQL Backend

This document outlines the technologies, architecture, and deployment process for the Hypha DHO GraphQL backend service. The deployment of the application is managed through Terraform and Kubernetes, and leverages Docker for containerization and Github Actions for continuous integration and deployment.

Live Documentation

GraphQL interactive documentation can be found at:

Technologies

The following technologies are used in the deployment of the application:

  • Terraform: responsible for setting up the infrastructure.
  • Kubernetes: used to deploy the application instances in a cluster.
  • Helm: used to package Docker images as Helm charts for easy deployment to Kubernetes clusters.
  • Docker: used to containerize the applications.
  • Docker Compose: used to run applications locally.
  • Github Actions: used to build application Docker images on code change.

Kubernetes Dependencies

In addition to the technologies listed above, the deployment of the application on Kubernetes also requires the following dependencies:

  • External DNS: used to maintain DNS records.
  • Cert-Manager: used to manage TLS certificates.
  • Ingress-Nginx: provides ingress functionality.

Architecture

The Hypha GraphQL backend is comprised of following primary components: the Hypha Document Cache Processor, the Hypha ElasticSearch Processor, the Dgraph Database and ElasticSearch instance.

Document Cache Processor: The Document Cache Processor is responsible for caching documents in the system for quick retrieval. This component ensures that right documents, in right format and with right relations are stored in DGraph database.

Elasticsearch Processor: The Elasticsearch Processor is responsible for storing the information about the current cursor position.

Dgraph Database: The Dgraph Database is the primary database for the backend system. It stores all data in a graph format, making it easier to traverse and query relationships between data points.

Both the Document Cache Processor and the Elasticsearch Processor connect to a cloud hosted instance of DFuse and Firehose to stream data from the EOS blockchain. This integration allows for real-time access to blockchain data and ensures that the GraphQL backend is always up-to-date with the latest information. With these components working together, the GraphQL backend is able to provide fast and reliable access to blockchain data, as well as powerful queries for Hypha DHO.

Hypha DHO GraphQL Architecture Diagram

 Hypha DHO GraphQL Architecture Diagram

Deployment Process

The deployment process consists of the following steps:

  • Use Terraform to set up the infrastructure.
  • Package the application instances as Docker images.
  • Use Helm to deploy the Docker images to the Kubernetes cluster.
  • Use Github Actions to continuously build and deploy application Docker images on code change.

Detailed deployment instractions can be found at DEPLOYMENT.md

About

This repository encompasses all the steps that are needed for setting up the new Hypha DHO backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages