support annotation-based approach
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- java
調査の方向性
まず、現在の ctx.run() の使用方法と issue 内の @Workflow の例を確認し、その後、責任を呼び出されるメソッドに移すことで他のコンテキストメソッドにどのような影響があるかを比較します。実装前に、アノテーションのセマンティクス、サポートするメソッド境界、互換性に関する想定を定義します。アプローチが仕様化され、その実現可能性が解決されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Java
- スター
- 60
- フォーク
- 17
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
restatedev/sdk-java のほかの issue
-
Vert.x 5 update オープン
難易度 3/5 1〜2日 初心者へのやさしさ 25/100
restatedev/sdk-java#629 · コメント 2 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 68/100
restatedev/sdk-java#614 · コメント 2 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
restatedev/sdk-java#603 ·
-
restatedev/sdk-java#570 · 担当者 1 名 ·
-
dependencies
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
restatedev/sdk-java#569 · コメント 2 件 · リアクション 1 件 ·
restatedev/sdk-java の issue をすべて見る
似ている issue
-
area/plugin
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
kestra-io/plugin-kestra#190 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
apache/rocketmq-dashboard#5064 ·