A lightweight handler is a function that can process messages without being tied to a specific module.
It can be used for quick, non-blocking operations that don’t require a full module lifecycle
or state management.
It takes a message, the shared application state, and a sender for outgoing messages.
It returns a future that resolves to a CoreResult<()>, indicating success or failure.
This is useful for handling messages that need to be processed quickly or in a lightweight manner,
such as logging, simple transformations, or forwarding messages to other parts of the system.