Hagrid Service Architecture
Here, we are going to describe advance concepts of Hagrid which will be useful for you to develop scalable connector.
Hagrid has 4 basic components
- Traverser Module
- Processor Module
- Shared Module
- Infra Module
Traverser Module
Traverser module contains services which are responsible for fetching the data from third-party. There are three major services for this module
- DagTraversalService - Work on the whole DAG. It spins
DagNodeTraversalService - DagNodeTraversalService - Work on each node of the DAG. It spins each
DagNodePerParentTraversalServiceinstance for node with each of its parent. - DagNodePerParentTraversalService - As node can have multiple parents, each service instance works on
node<-->parentrelationship. Each parent can have millions of data. It spins limited number ofDagNodePerItemServiceinstance for each parent item. - DagNodePerItemTraversalService - Works on each item of the parent and execute step of this node.
Processor Module
Processor module contains services which are responsible for performing ETL process on the data fetched by traverser module. There are four major services here
- ProcessorService
- ProcessorTaskService
- Join Services
- InnerJoinService
- LeftJoinService
- NoopService
Shared Module
Shared module contains services which are used to synchronize both Traverser and Processor. For example SyncStatusService.
Both traverser services and processor services report their status back to SyncStatusService.
There are three major services for this module
- SyncStatusService
- ConsumerService
- AnalyticsService
Infra Module
Infra Module contains services which provides infra structure to the above three modules to work efficiently. For example
All three traverser services, processor services and shared services use some kind of storage to store their data into persisten
storage.
