Firehose is a distributed system designed to extract, process, and serve blockchain data at scale. This section covers the core architectural concepts that apply to all blockchain implementations.
Core Principles
Chain-Agnostic Design
90% Universal: Core components work across all blockchains
10% Chain-Specific: Only reader nodes differ between chains
Consistent Interface: Same gRPC API regardless of blockchain
Scalable Architecture
Horizontal Scaling: Add more components as needed
Component Isolation: Each service can be scaled independently
Storage Flexibility: Support for local, cloud, and distributed storage
Real-Time Processing
Live Streaming: Sub-second latency for new blocks
Historical Access: Efficient querying of past data
Fault Tolerance: Automatic recovery from failures
System Components
The Firehose system consists of several key components that work together to provide a complete blockchain data pipeline: