ChainStorage is comprised of the following components:
Figure 2: System Architecture
In the context of this document, a block refers to a block header, as well as its linked data including transactions, traces, receipts, token transfers, etc. The metadata is stored in DynamoDB (with a consistent schema across blockchains), and the blob data is stored in S3 (with varying schema across blockchains).
DynamoDB is used as a key-value storage, and S3 is used as blob storage. Therefore, ChainStorage should not be tightly coupled with these specific storage implementations.
Cadence is a fault-tolerant and highly scalable orchestration framework. The core of ChainStorage will be implemented as Cadence workflows. Cadence allows for the easy implementation of long-running and periodic workflows.