Serverless, SQL based API for serving Unchained Index.
The project is structured as a collection of modules, which can share code but run independently. They also have different dependencies - this guarantees small lambda (serverless) executable size.
config
handles configuration files and env variablesdatabase
everything database-relatedextract
take whole index and convert it to SQL. Swap tables (staging -> live)query
lambda (serverless function) and acmd
to find appearancesscanner
(deprecated) old lambda to perform appearance lookupqueue
insert to/read from the queue that feeds SQL databasequicknode
QuickNode integration related logic: handling accounts, authorization, provision and healthchecktest/integration
inntegration tests (they run mocked environment in Docker containers)
The data can be initially ingested into the queue (and then SQL database) using extract
tool. Later on, the scraper sends new appearances as notifications to queue/insert
.
User can sign up using QuickNode Marketplace. This is handled by quicknode/provision
code.
After signing up, the user can ask for appearances by sending JSON-RPC request to our API. The request is handled by query/lambda
.
Plans and API keys for the users are defined in SAM template. They include rate limits.