support annotation-based approach
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- java
- Lĩnh vực
- backend-api-design, distributed-systems
Hướng nghiên cứu
Bắt đầu bằng cách xem xét việc sử dụng ctx.run() hiện tại và ví dụ @Workflow trong issue, sau đó so sánh việc chuyển trách nhiệm sang một phương thức được gọi sẽ ảnh hưởng như thế nào đến các phương thức context khác. Xác định ngữ nghĩa của annotation, các ranh giới phương thức được hỗ trợ và các kỳ vọng về khả năng tương thích trước khi triển khai; công việc được coi là hoàn tất khi cách tiếp cận đã được đặc tả và tính khả thi của nó đã được giải quyết.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I don't like passing all the app logic as lambdas because it makes the codebase messy. It would be great if Restate used an annotation-based approach instead (or something else), which would mean moving the responsibility from the caller method to the called method
What if we created a @Run annotation instead of calling ctx.run()? For example:
@Workflow
public boolean run(WorkflowContext ctx, Email email) {
String secret = ctx.random().nextUUID().toString();
ctx.set(STATUS, "Generated secret");
// ctx.run("send email", () -> sendEmailWithLink(email, secret));
sendEmailWithLink(email, secret);
ctx.set(STATUS, "Sent email");
String clickSecret =
ctx.promise(EMAIL_CLICKED)
.future()
.await();
ctx.set(STATUS, "Clicked email");
return clickSecret.equals(secret);
}
@Run("send email")
public void sendEmailWithLink(Email email, String secret) {
// ......
}
That's not only for ctx.run(), it can be applied to a lot of methods.
- Ngôn ngữ chính
- Java
- Star
- 60
- Fork
- 17
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của restatedev/sdk-java
-
Vert.x 5 update Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
restatedev/sdk-java#629 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 68/100
restatedev/sdk-java#614 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
restatedev/sdk-java#603 ·
-
Reflection based experience Đang mở
restatedev/sdk-java#570 · 1 người được giao ·
-
Java jackson 3 version upgrade Đang mởdependencies
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
restatedev/sdk-java#569 · 2 bình luận · 1 reaction ·
Tất cả issue của restatedev/sdk-java
Issue tương tự
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Đang mởarea/plugin
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Add canonical URLs and a sitemap Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
apache/rocketmq-dashboard#5064 ·