DataHub Docs
DataHubLearnCommunity
  • 👋Welcome to Figment Docs
  • 🚩Introduction
    • 🚀Why Build on Web 3?
    • 💻What is DataHub?
  • 📖DataHub Guides
    • 📍DataHub Products
      • Transaction Search API
      • Staking API
    • 🏭DataHub Infrastructure
    • 🏁Get Started With DataHub
    • 🚨Quotas & Rate Limits
    • 💡Dashboard how-tos
      • Configuring CORS whitelist
  • 📚Network Documentation
    • 🔭Network Guide
    • 🅰️Arbitrum
      • 🎮RPC & REST API
    • 🏔️Avalanche
      • 🎮RPC & REST API
        • Avalanche Indexer API
    • 💠Binance Smart Chain
      • 🎮RPC & REST API
    • 💰Celo
      • 💼CELO Wallet
      • 🎮RPC & REST API
    • ➰Centrifuge
      • 🎮RPC & REST API
    • 🌌Cosmos
      • 🎮RPC & REST API
      • 🎊Enriched APIs
        • Transaction Search
        • Rewards API
    • 💎Ethereum
      • 🎮RPC & REST API
    • 🧊Fantom
      • 🎮RPC & REST API
    • 🐦Kusama
      • 🎮RPC & REST API
    • 📱Mina
      • 🎮RPC & REST API
        • Indexer API Documentation
        • Query Mina GraphQL API
    • 🌈NEAR
      • 🎮RPC & REST API
      • 🎊Enriched APIs
        • Indexer API
      • 💼NEAR Wallet
    • 🏝️Oasis
      • 🎮RPC & REST API
        • Oasis REST API
    • 🧪Osmosis
      • 🎮RPC & REST API
    • 🍡Polkadot
      • 🎮RPC & REST API
      • 🎊Enriched APIs
        • Indexer API
        • Transaction Search
    • ⛽Polygon (Matic)
      • 🎮RPC & REST API
    • 🔋Solana
      • 🎮RPC & REST API
    • 📚Extra Guides
      • Blockchain Fundamentals
      • Docker Setup for Windows
      • Troubleshooting CORS Errors on DataHub
      • 5XX Retry Logic Best Practices
        • 5XX Retry Logic Best Practices - NodeJS
        • 5XX Retry Logic Best Practices - Python
        • 5XX Retry Logic Best Practices - Ruby
        • 5XX Retry Logic Best Practices - Go
      • Setting up a fresh JavaScript Project with dotenv
      • Getting started with dotenv and .env files
      • Rust Learning Resources
      • Setup Solana BPF Toolchain on Windows
      • Figment Learn Pathway Troubleshooting
  • 🤔Other
    • 🧾Glossary
    • 🗳️Support
  • 🔗Terms & Conditions
    • Terms of Use
    • Terms & Conditions DataHub
    • Privacy Policy
    • Contributor Terms
Powered by GitBook
On this page
  • High Availability Architecture
  • Load Balancing Ingress Layer
  • High Availability Proxy Layer
  • Blockchain Node and Indexer Layer

Was this helpful?

  1. DataHub Guides

DataHub Infrastructure

Overview of DataHub's infrastructure

High Availability Architecture

DataHub uses a three-tiered system architecture with high availability at each layer.

  1. Load balancing Ingress Layer

  2. High availability Proxy Layer

  3. Blockchain Node and Indexer Layer

Using this approach, we are able to provide a highly available service that can withstand multiple server failures at each level.

Load Balancing Ingress Layer

All requests to *.datahub.figment.io are received and routed through a set of load balancers. This layer can tolerate failures of multiple individual load balancers and still function correctly.

The main job of this layer is to receive all inbound requests and terminate SSL before handing off to the Proxy Layer.

High Availability Proxy Layer

Requests received at the Ingress Layer are then load balanced across a set of proxy servers at the Proxy Layer. This layer can tolerate failures of multiple individual proxy servers and still function correctly.

The main job of this layer is to authenticate requests, check Quotas and Rate Limits, and route requests to the correct service in the Blockchain Node and Indexer Layer.

Blockchain Node and Indexer Layer

Requests authenticated at the Proxy Layer are then routed to the correct pool of blockchain nodes or indexers.

DataHub runs many different kinds of nodes and indexers, for example:

  • Full nodes

  • Archive nodes

  • Higher level RPC/REST services (like Cosmos LCD)

  • Services like Transaction Search

Each of these types of nodes is run as a pool, meaning for example there will be 5 identical copies of a full node running together that can all service requests. The pool can tolerate failures of multiple individual nodes and still function correctly.

The main job of this layer is to either:

  1. Find and return the correct data (read)

  2. Submit a transaction (write)

PreviousStaking APINextGet Started With DataHub

Last updated 3 years ago

Was this helpful?

to start building in minutes and discover the superpowers Datahub can offer you!

📖
🏭
Sign up now