From 454290b3ddcbb642541ee82816016af1831e5e53 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 21 Jun 2023 18:23:56 +0200 Subject: [PATCH] Adding docs/archtecture.md --- docs/archtecture.md | 44 ++++++++++++++++++++++++++++++++++++++++++ docs/img/overview.jpg | Bin 0 -> 67117 bytes 2 files changed, 44 insertions(+) create mode 100644 docs/archtecture.md create mode 100644 docs/img/overview.jpg diff --git a/docs/archtecture.md b/docs/archtecture.md new file mode 100644 index 0000000..edd51d0 --- /dev/null +++ b/docs/archtecture.md @@ -0,0 +1,44 @@ + +# Architecture + +Below is the diagram of how Thalos processes messages from a SHIP Node + +![overview](img/overview.jpg) + +## Decoding Binary Format + +When leveraging the Antelope State History plugin (SHIP), developers have the capability to stream blockchain data via a WebSocket connection. +Nevertheless, the process of decoding the binary format and managing the WebSocket connection can prove to be laborious and time-intensive. +Thalos alleviates these challenges by assuming the responsibility of decoding the binary messages on behalf of developers. +It seamlessly transforms the data received from the SHIP node into plain JSON format (and can be adapted to other prevalent formats if desired). +JSON, being widely supported, has many implementations across various programming languages. + +## Contract ABIs + +Thalos simplifies the decoding of contract-specific data by maintaining an internal cache of contract ABIs. This cache, which is stored in Redis, allows for efficient retrieval of contract information. There are two ways in which the cache can be populated: + +1. **API Node**: Thalos can query the contract ABI through an API node, populating the cache with the retrieved information. +2. **SHIP Node Messages**: Thalos keeps track of updates from the SHIP node, and when a contract is updated, it automatically updates its internal cache with the latest ABI information. + +## Redis - PubSub vs Stream + +Thalos utilizes Redis's publish/subscribe model known as Pub/Sub, which offers the following advantages: + +1. **Decoupled communication**: Pub/Sub enables loose coupling between publishers and subscribers. Publishers are unaware of the subscribers, and subscribers can join or leave independently, without affecting the publishing process. + +2. **Scalability**: Redis Pub/Sub is designed to handle high message throughput and efficiently distribute messages to a large number of subscribers. It can handle a high volume of messages without compromising performance. + +3. **Simple implementation**: Redis's Pub/Sub mechanism is easy to implement, involving basic operations such as subscribing to channels, publishing messages, and receiving messages. This simplicity facilitates development and integration with other systems. + +4. **Asynchronous communication**: Pub/Sub operates asynchronously, allowing publishers to send messages without waiting for subscribers to receive them. This decoupling is advantageous in scenarios where immediate response or synchronization is not necessary. + +However, these advantages can also be considered drawbacks in certain situations. Pub/Sub may encounter issues with message persistence: + +- **Message loss**: If clients disconnect and reconnect, they may miss messages published during their absence. Similarly, if a client cannot process messages quickly enough, it may not receive all messages. + +- **Immediate message consumption**: Pub/Sub requires subscribers to consume messages immediately upon publication. If a client is unable to read a message promptly, it is discarded. + +In contrast, Streams in Redis provide built-in message persistence. Messages are stored as entries in the stream and can be consumed at any time, even if they were published before the subscriber connected. +This feature addresses the drawbacks of immediate message consumption and message loss associated with Pub/Sub. + +Currently, Streams are not implemented in Thalos. However, there are plans to consider implementing Streams in the future, based on the demand for such functionality. It's important to note that Streams introduce additional complexity to the client implementation. diff --git a/docs/img/overview.jpg b/docs/img/overview.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c36588e45029f2a4dac9e62ef8b613bcca381c48 GIT binary patch literal 67117 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

dc)`Yqi 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