support annotation-based approach
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- java
Direzione di ricerca
Inizia esaminando l’utilizzo attuale di ctx.run() e l’esempio di @Workflow nell’issue, quindi confronta in che modo lo spostamento della responsabilità a un metodo chiamato influirebbe sugli altri metodi del contesto. Definisci la semantica dell’annotazione, i limiti dei metodi supportati e le aspettative di compatibilità prima dell’implementazione; il lavoro è completo quando l’approccio è specificato e la sua fattibilità è stata risolta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Java
- Stelle
- 60
- Fork
- 17
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di restatedev/sdk-java
-
Vert.x 5 update Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
restatedev/sdk-java#629 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 68/100
restatedev/sdk-java#614 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
restatedev/sdk-java#603 ·
-
Reflection based experience Aperta
restatedev/sdk-java#570 · 1 assegnatario ·
-
dependencies
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
restatedev/sdk-java#569 · 2 commenti · 1 reazione ·
Tutte le issue di restatedev/sdk-java
Issue simili
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
inu-appcenter/memorIN-backend#288 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
frontend maui-pilot pilot-ask question
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Apertaarea/plugin
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
kestra-io/plugin-kestra#190 ·