Kakarot Graph Node
DevOps2024

KAKAROTGRAPHNODE

Graph Node on Kakarot zkEVM — AWS infrastructure, Docker orchestration, production indexing.

1000
Indexer start block
3
Core service containers
99.9%
Target head sync SLO
SCROLL
Client
Kakarot
Domain
DevOps / Blockchain
Platform
AWS
Duration
2024
Core Stack
AWS · Docker · Graph Node
The Brief

THE
PROBLEM

Kakarot’s EVM-compatible L2 needed dependable ERC-20 transfer history and a Graph Node footprint that could ride RPC upgrades — not only a WASM mapping but infra that survives devnet-style churn.

AssemblyScript subgraph indexing Transfer(indexed,indexed,uint256) from block 1000 onward; Graph Node on AWS with hardened Docker Compose, health checks, RPC failover, and pinned subgraph manifests for reproducible deploys.

Core Engineering Challenge

Bootstrap indexing from an early block with sparse history, keep Graph Node head aligned with a moving Kakarot RPC, and containerize on AWS with observability so outages were obvious before subgraph consumers noticed.

EVM L2
Scope
Extended stack
devops
AWS
devops
Docker
blockchain
Graph Node
Infrastructure
Infrastructure
How we built it

THE ARCHITECTURE

01
Subgraph spec

Define Transfer entity schema with tx metadata and start block 1000 for Kakarot Sepolia.

AssemblyScriptThe Graph
02
AWS + Docker

Compose Graph Node, IPFS, and Postgres with persistent volumes and restart policies.

AWSDocker
03
RPC hardening

Failover endpoints, backoff, and alerts when head lag exceeds SLO.

DevOpsEVM
04
Deploy & verify

Smoke queries against known token contracts; document upgrade path for new RPC URLs.

GraphQLRunbooks
System Data Flow
Ingestion
CrawlerContent Hash10K+ pages
Processing
ChunkerDeduplicatorEmbedding API
Storage
pgvectorPostgreSQLRedis Cache
Auth
Identity ProviderJWT BridgeSessions
Query
HNSW SearchRe-rankerLLM Stream
Delivery
Web AppMobile AppUsers
What we delivered

THE RESULTS

EVM L2

Indexing plus operational deployment for Kakarot Sepolia-era infrastructure — subgraph correctness and node uptime treated as one deliverable because dead GraphQL with a healthy chain is still a failed integration.

EVM L2
Scope

Indexing plus operational deployment for Kakarot Sepolia-era infrastructure — subgraph correctness and node uptime treated as one deliverable because dead GraphQL with a healthy chain is still a failed integration.

Engineering decisions

TECH
DEEP DIVE

GN
Self-hosted Graph Node

Early L2 RPCs change often; owning the indexer stack meant we could pause/resync without vendor tickets.

Docker-compose parity between staging and prod cut debugging time when IPFS pinning acted up.

TR
Minimal Transfer subgraph

Scope stayed narrow to ship reliable history before expanding to complex protocols.

Explicit start block avoided reprocessing genesis noise on young chains.

Next Case Study
Web Platform
BuildersDAO

Developer Community Platform

Next.jsTypeScript
Start a project

LET'S
BUILD
SOMETHING.

We take on a small number of projects at a time. If the problem is hard, we're interested.

Email
hello@techmusketeers.com
Response time
Within 24 hours
Availability
Open for new projects · 2025