Events
Events are the most practical way for a frontend or indexer to observe lifecycle changes.
solidity
event EscrowCreated(uint256 indexed id, address indexed client, address indexed freelancer, uint256 amount, address token, uint256 deadline);
event EscrowFunded(uint256 indexed id, uint256 amount);
event WorkDelivered(uint256 indexed id);
event WorkApproved(uint256 indexed id, uint256 freelancerAmount, uint256 feeAmount);
event Refunded(uint256 indexed id, uint256 amount);
event Withdrawn(address indexed user, address indexed token, uint256 amount);A contemporary frontend can use these events to update status, index a user's escrows, detect available balances, and maintain an activity timeline.
Events should not replace direct reads when the application needs authoritative current state.