ENSIndexer Startup Sequence
Below are diagrams describing the ENSIndexer startup sequence.
Ponder app lifecycle
Section titled “Ponder app lifecycle”Here is an overview of the ENSIndexer startup sequence. It summarizes the Ponder app lifecycle running inside an ENSIndexer instance. The example assumes that the ENSIndexer was started with the ENSINDEXER_SCHEMA_NAME environment variable set to prod_0, but the same sequence applies to any ENSIndexer Schema.
ENSIndexer schema migrations
Section titled “ENSIndexer schema migrations”When the Ponder app lifecycle reaches the step for “Execute migrations for the prod_0 ENSIndexer Schema”, Ponder will execute any pending migrations for the prod_0 ENSIndexer Schema.
This ensures that the ENSIndexer Schema is up to date before indexing onchain events start.
Omnichain indexing strategy
Section titled “Omnichain indexing strategy”When the Ponder app lifecycle reaches the step to “Run omnichain indexing strategy”, Ponder will start writing data concurrently to the Ponder Schema (caching RPC calls) and the ENSIndexer Schema (storing indexed data). The ENSIndexer app lifecycle “injects” a special step for “Execute onchain event handlers preconditions”.
Init onchain event handlers
Section titled “Init onchain event handlers”The special step for “Execute onchain event handlers preconditions” occurs before any onchain event is indexed. This enables ENSIndexer to execute ENSNode Schema migrations and populate the ENSNode Metadata table with relevant data before any onchain event handlers are executed.



