The Murmur application architecture consists of the following components:
• Front-end • Smart contract • Blockchain logs • Remote database
There are two distinct cycles in which the above components work together.
Input Cycle This is when data from the user-end is being entered into the system. This user data originates in the front-end, and first reaches the smart contract. Functions in the contract manipulate the data in various ways, and send processed data to be written onto the blockchain. The blockchain blocks essentially store all information in the form of referenced logs. These logs are then read and parsed to construct a remote database, which acts as a back-up to the logs, and also greatly improves the speed at which the front-end can operate.
Output Cycle This is when data from the blockchain is used to populate the front-end for user consumption. The process actually starts when blockchain logs are parsed to construct the remote database. Having the database well organised means shorter query times and better user experience. Then the front-end requests various packets of data from the back-end, and the database promptly serves them on demand.