incubator-seata-go icon indicating copy to clipboard operation
incubator-seata-go copied to clipboard

Expression integration with CEL in seata-go Saga

Open ptyin opened this issue 1 year ago • 1 comments

This is a subtask under the #618

Description:

Currently, in the Java implementation, SpEL (Spring Expression Language) serves as the default expression language. For seata-go, we aim to integrate CEL (Common Expression Language) as a supported expression type.

Implementation Details:

1. Expression Components Implementation:

  • Implement key expression-related components such as ExpressionFactoryManager and ExpressionResolver tailored for CEL.

2. Implement CEL Type Expression in seata-go:

  • Develop and implement CEL type expressions within the seata-go codebase. This involves creating an Expression module specific to CEL.

3. Extend seata for CEL Type Expression:

  • Modify the seata framework to support CEL type expressions. Adapt the existing codebase to handle and evaluate expressions written in CEL.

Next Steps:

  1. Expression Components Implementation:

    • Implement the necessary components like ExpressionFactoryManager and ExpressionResolver to manage CEL expressions.
  2. Implement CEL Type Expression in seata-go:

    • Develop a CEL type expression module within seata-go, ensuring compatibility with the chosen expression language.
  3. Extend seata for CEL Type Expression:

    • Adapt the seata framework to recognize and handle CEL type expressions. This includes modifications to allow the seamless integration of CEL as a supported expression language.

By completing these steps, we aim to integrate CEL as a supported expression type in seata-go, with the necessary components and modifications in both seata-go and seata frameworks to handle and evaluate CEL expressions effectively.

ptyin avatar Jan 03 '24 04:01 ptyin

Assign to me

wt-better avatar Jan 04 '24 14:01 wt-better