You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In Java, users configure the state machine using spring.xml or by building a StateMachineConfig through code. In seata-go, we aim to provide users with a non-code approach to define state machine configurations, mirroring the implementation patterns observed in other Go projects.
The State Machine Configuration module has dependencies on various sub-modules. The development of specific functionalities will be incrementally added to the configuration as needed. For example, if the State Machine Configuration depends on ExpressionFactoryManager, the related methods need not be implemented initially. They can be added later when working on the expression part.
Implementation Details:
1. State Machine Configuration Interface:
Introduce a StateMachineConfig interface that defines the contract for configuring the state machine.
2. Default Implementation:
Provide a default implementation, DefaultStateMachineConfig, that serves as a baseline configuration with sensible defaults.
3. Non-Code Configuration:
Develop a mechanism allowing users to define state machine configurations without writing code. This could be through configuration files or any other non-code approach.
4. Incremental Functionality:
Recognize that the State Machine Configuration relies on various functionalities, and these functionalities can be added progressively. For instance, if the configuration later requires ExpressionFactoryManager, the corresponding initialization code can be added when working on the expression module.
Next Steps:
Interface Definition:
Define the StateMachineConfig interface outlining the methods required for configuring the state machine.
Default Implementation:
Implement DefaultStateMachineConfig as a default configuration with sensible defaults.
Non-Code Configuration:
Implement a mechanism for users to define state machine configurations without writing code.
Incremental Functionality:
Adopt an incremental approach to add functionalities to the configuration module as needed.
By implementing these steps, we can provide users with a flexible and user-friendly way to configure the state machine in seata-go, following non-code configuration patterns observed in other Go projects.
The text was updated successfully, but these errors were encountered:
ptyin
changed the title
State machine configuration in seata-go
State machine configuration in seata-go Saga
Jan 3, 2024
This is a subtask under the #618
Description:
In Java, users configure the state machine using
spring.xml
or by building aStateMachineConfig
through code. In seata-go, we aim to provide users with a non-code approach to define state machine configurations, mirroring the implementation patterns observed in other Go projects.The State Machine Configuration module has dependencies on various sub-modules. The development of specific functionalities will be incrementally added to the configuration as needed. For example, if the State Machine Configuration depends on
ExpressionFactoryManager
, the related methods need not be implemented initially. They can be added later when working on the expression part.Implementation Details:
1. State Machine Configuration Interface:
StateMachineConfig
interface that defines the contract for configuring the state machine.2. Default Implementation:
DefaultStateMachineConfig
, that serves as a baseline configuration with sensible defaults.3. Non-Code Configuration:
4. Incremental Functionality:
ExpressionFactoryManager
, the corresponding initialization code can be added when working on the expression module.Next Steps:
Interface Definition:
StateMachineConfig
interface outlining the methods required for configuring the state machine.Default Implementation:
DefaultStateMachineConfig
as a default configuration with sensible defaults.Non-Code Configuration:
Incremental Functionality:
By implementing these steps, we can provide users with a flexible and user-friendly way to configure the state machine in seata-go, following non-code configuration patterns observed in other Go projects.
The text was updated successfully, but these errors were encountered: