Technical Architecture
Last updated
Last updated
Leandexer offers an easy to use yet complex service through a highly available and robust architecture.
In the above diagram, you can see the high-level view of the architecture:
app.leandexer.com: The web application, written in Vue.js
Authentication Service: relying on AWS Cognito to safely store emails and passwords
Leandexer API: Storing the project, streams, networks and notifications configuration, written in Node.js
Leandexer Indexing Engine: where the magic happens. See below for a breakdown of this component architecture
The Indexing Engine is where the business logic of listening to the blockchain and filtering the events happens. This key component of the solution is constantly calling the networks RPC to feed on the new blocks, reading the information contained in the blocks and filtering per smart contracts defined in your projects.
In order to be highly available and scalable, the Indexing Engine is creating separated process per smart contract and per blockchain network, allowing for a better usage of resources and preventing interlocking between two indexing.
The Indexing Engine is composed of two main parts:
The Orchestrator: connecting to the network RPC, it is listening to all new blocks incoming and filters the data for the smart contract configured in its database, sending the raw data to the Log Worker
The Log Worker: getting the raw data from the blockchain, it is decoding the payload and making it easily digestible by a system. The decoded payload is then sent to the consumer
In the current architecture, the consumer is a micro-service responsible for managing the notification channels defined by the user in the web application, sending the data over email or webhooks.