0
0
Blockchain / Solidityprogramming~5 mins

Event-driven architecture patterns in Blockchain / Solidity

Choose your learning style9 modes available
Introduction

Event-driven architecture helps blockchain systems react quickly to changes by using events as signals. It makes programs more flexible and easier to manage.

When you want your blockchain app to respond immediately to transactions or state changes.
When building decentralized apps that need to update user interfaces based on blockchain events.
When you want to separate different parts of your blockchain system for better organization.
When you need to track and log important actions happening on the blockchain.
When you want to trigger automatic processes after certain blockchain events occur.
Syntax
Blockchain / Solidity
contract MyContract {
    event MyEvent(address indexed sender, uint value);

    function doSomething(uint _value) public {
        emit MyEvent(msg.sender, _value);
    }
}

event declares an event that can be listened to outside the contract.

emit sends the event with data when something happens.

Examples
This example shows a Transfer event emitted when tokens move from one address to another.
Blockchain / Solidity
event Transfer(address indexed from, address indexed to, uint amount);

function transfer(address _to, uint _amount) public {
    // transfer logic
    emit Transfer(msg.sender, _to, _amount);
}
This example emits an event when a new user registers, sending their address and name.
Blockchain / Solidity
event NewUser(address indexed userAddress, string userName);

function registerUser(string memory _name) public {
    // registration logic
    emit NewUser(msg.sender, _name);
}
Sample Program

This smart contract stores a number and emits an event every time the number changes. The event tells who changed it and the new value.

Blockchain / Solidity
pragma solidity ^0.8.0;

contract SimpleEvent {
    event ValueChanged(address indexed changer, uint newValue);

    uint public value;

    function updateValue(uint _value) public {
        value = _value;
        emit ValueChanged(msg.sender, _value);
    }
}
OutputSuccess
Important Notes

Events are stored in the blockchain logs and are cheaper than storing data on-chain.

Use indexed to make event parameters searchable.

Listening to events helps front-end apps update without constant polling.

Summary

Events signal important actions in blockchain contracts.

Emit events to notify outside listeners about changes.

Event-driven patterns improve responsiveness and organization.