You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Status

NOT STARTED 

Stakeholders
Outcome
Due date
Owner

Background

To support a various number of use cases Iroha2 must implement logic to plug additional logic as an actor. The design should allow an arbitrary actor to receive messages from other actors and share messages about his work.

Problem

The current runtime design is implemented using mpsc. The single receiver channel architecture turns into a chaos of strict dependencies and creates constraints for extending logic with new modules.

Solution

Rework core architecture with actor model and single message bus. Bus receives all messages during execution of actors and broadcast them to others. Message trait should allow identify nature of message to filter it. To prevent any blocking problems, messages must reference an immutable value or a cloned value.

According to the requirement of supporting different use cases, actors should be implemented as compile-time features (at least) or as pluggable extensions (point to discuss and future research).


Decisions

Alternatives

  1. Use available actor frameworks such as Actix or different

Concerns

Tradeoff between extensibility and overhead with maintenance global bus and filter messages

Assumptions

Risks

Additional Information

  • No labels