Skip to content

Commit

Permalink
Update for latest go sdk
Browse files Browse the repository at this point in the history
  • Loading branch information
jackkleeman committed Aug 22, 2024
1 parent 0926d23 commit 956a12f
Show file tree
Hide file tree
Showing 21 changed files with 141 additions and 156 deletions.
16 changes: 7 additions & 9 deletions code_snippets/go/develop/awakeable.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,40 +8,38 @@ import (

type Awakeable struct{}

func (Awakeable) Greet(ctx restate.Context, name string) (restate.Void, error) {
func (Awakeable) Greet(ctx restate.Context, name string) error {
// <start_here>
// <mark_1>
awakeable := restate.AwakeableAs[string](ctx)
awakeable := restate.Awakeable[string](ctx)
awakeableId := awakeable.Id()
// </mark_1>

// <mark_2>
restate.RunAs(ctx, func(ctx restate.RunContext) (string, error) {
restate.Run(ctx, func(ctx restate.RunContext) (string, error) {
return triggerTaskAndDeliverId(awakeableId)
})
// </mark_2>

// <mark_3>
payload, err := awakeable.Result()
if err != nil {
return restate.Void{}, err
return err
}
// </mark_3>
// <end_here>

_ = payload

// <start_resolve>
if err := ctx.ResolveAwakeable(awakeableId, "hello"); err != nil {
return restate.Void{}, err
}
restate.ResolveAwakeable(ctx, awakeableId, "hello")
// <end_resolve>

// <start_reject>
ctx.RejectAwakeable(awakeableId, fmt.Errorf("my error reason"))
restate.RejectAwakeable(ctx, awakeableId, fmt.Errorf("my error reason"))
// <end_reject>

return restate.Void{}, nil
return nil
}

func triggerTaskAndDeliverId(awakeableId string) (string, error) {
Expand Down
8 changes: 4 additions & 4 deletions code_snippets/go/develop/codegen/codegen.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,12 @@ func main() {

type GreeterClient struct{}

func (GreeterClient) CallGreeter(ctx restate.Context, _ restate.Void) (restate.Void, error) {
func (GreeterClient) CallGreeter(ctx restate.Context) error {
// <start_client>
client := proto.NewGreeterClient(ctx)
resp, err := client.SayHello().Request(&proto.HelloRequest{Name: "world"})
if err != nil {
return restate.Void{}, err
return err
}
// <end_client>
_ = resp
Expand All @@ -48,11 +48,11 @@ func (GreeterClient) CallGreeter(ctx restate.Context, _ restate.Void) (restate.V
client := proto.NewCounterClient(ctx, "key-1")
resp, err := client.Add().Request(&proto.AddRequest{Delta: 1})
if err != nil {
return restate.Void{}, err
return err
}
// <end_virtual_object_client>
_ = resp
}

return restate.Void{}, nil
return nil
}
36 changes: 18 additions & 18 deletions code_snippets/go/develop/codegen/proto/service_restate.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions code_snippets/go/develop/durabletimers.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import (

type DurableTimers struct{}

func (DurableTimers) Greet(ctx restate.Context, name string) (restate.Void, error) {
func (DurableTimers) Greet(ctx restate.Context, name string) error {
// <start_here>
ctx.Sleep(10 * time.Second)
restate.Sleep(ctx, 10*time.Second)
// <end_here>
return restate.Void{}, nil
return nil
}
4 changes: 2 additions & 2 deletions code_snippets/go/develop/errorhandling.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (

type ErrorHanding struct{}

func (ErrorHanding) Greet(ctx restate.Context, name string) (restate.Void, error) {
func (ErrorHanding) Greet(ctx restate.Context, name string) error {
// <start_here>
return restate.Void{}, restate.TerminalError(fmt.Errorf("Something went wrong."), 500)
return restate.TerminalError(fmt.Errorf("Something went wrong."), 500)
// <end_here>
}
25 changes: 11 additions & 14 deletions code_snippets/go/develop/journalingresults.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,30 +10,27 @@ import (

type JournalingResults struct{}

func (JournalingResults) Greet(ctx restate.Context, name string) (restate.Void, error) {
func (JournalingResults) Greet(ctx restate.Context, name string) error {
// <start_side_effect>
result, err := restate.RunAs(ctx, func(ctx restate.RunContext) (string, error) {
result, err := restate.Run(ctx, func(ctx restate.RunContext) (string, error) {
return doDbRequest()
})
if err != nil {
return restate.Void{}, nil
return err
}
// <end_side_effect>

_ = result

return restate.Void{}, nil
return nil
}

func (JournalingResults) PromiseCombinators(ctx restate.Context, name string) (string, error) {
// <start_race>
sleepFuture := ctx.After(100 * time.Millisecond)
callFuture, err := restate.CallAs[string](ctx.Service("MyService", "MyHandler")).RequestFuture("hi")
if err != nil {
return "", err
}
sleepFuture := restate.After(ctx, 100*time.Millisecond)
callFuture := restate.Service[string](ctx, "MyService", "MyHandler").RequestFuture("hi")

selector := ctx.Select(sleepFuture, callFuture)
selector := restate.Select(ctx, sleepFuture, callFuture)
switch selector.Select() {
case sleepFuture:
if err := sleepFuture.Done(); err != nil {
Expand All @@ -50,15 +47,15 @@ func (JournalingResults) PromiseCombinators(ctx restate.Context, name string) (s
// <end_race>

// <start_uuid>
uuid := ctx.Rand().UUID()
uuid := restate.Rand(ctx).UUID()
// <end_uuid>

_ = uuid

// <start_random_nb>
randomInt := ctx.Rand().Uint64()
randomFloat := ctx.Rand().Float64()
randomSource := rand.New(ctx.Rand().Source())
randomInt := restate.Rand(ctx).Uint64()
randomFloat := restate.Rand(ctx).Float64()
randomSource := rand.New(restate.Rand(ctx).Source())
// <end_random_nb>

_ = randomInt
Expand Down
4 changes: 2 additions & 2 deletions code_snippets/go/develop/myvirtualobject/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ import (
type MyVirtualObject struct{}

func (MyVirtualObject) MyHandler(ctx restate.ObjectContext, greeting string) (string, error) {
return fmt.Sprintf("%s %s!", greeting, ctx.Key()), nil
return fmt.Sprintf("%s %s!", greeting, restate.Key(ctx)), nil
}

func (MyVirtualObject) MyConcurrentHandler(ctx restate.ObjectSharedContext, greeting string) (string, error) {
return fmt.Sprintf("%s %s!", greeting, ctx.Key()), nil
return fmt.Sprintf("%s %s!", greeting, restate.Key(ctx)), nil
}

func main() {
Expand Down
40 changes: 14 additions & 26 deletions code_snippets/go/develop/servicecommunication.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,60 +8,48 @@ import (

type Router struct{}

func (Router) Greet(ctx restate.Context, name string) (restate.Void, error) {
func (Router) Greet(ctx restate.Context, name string) error {
// <start_request_response_service>
response, err := restate.CallAs[string](ctx.Service("MyService", "MyHandler")).Request("Hi")
response, err := restate.Service[string](ctx, "MyService", "MyHandler").Request("Hi")
if err != nil {
return restate.Void{}, err
return err
}
// <end_request_response_service>

_ = response
return restate.Void{}, nil
return nil
}

func (Router) Greet2(ctx restate.Context, name string) (restate.Void, error) {
func (Router) Greet2(ctx restate.Context, name string) error {
// <start_request_response_object>
response, err := restate.CallAs[string](ctx.Object("MyVirtualObject", "Mary", "MyHandler")).Request("Hi")
response, err := restate.Object[string](ctx, "MyVirtualObject", "Mary", "MyHandler").Request("Hi")
if err != nil {
return restate.Void{}, err
return err
}
// <end_request_response_object>

_ = response

// <start_one_way_service>
if err := ctx.Service("MyService", "MyHandler").Send("Hi", 0); err != nil {
return restate.Void{}, err
}
restate.ServiceSend(ctx, "MyService", "MyHandler").Send("Hi")
// <end_one_way_service>

// <start_one_way_object>
if err := ctx.Object("MyService", "Mary", "MyHandler").Send("Hi", 0); err != nil {
return restate.Void{}, err
}
restate.ObjectSend(ctx, "MyService", "Mary", "MyHandler").Send("Hi")
// <end_one_way_object>

// <start_delayed_service>
if err := ctx.Service("MyService", "MyHandler").Send("Hi", 5*time.Second); err != nil {
return restate.Void{}, err
}
restate.ServiceSend(ctx, "MyService", "MyHandler").Send("Hi", restate.WithDelay(5*time.Second))
// <end_delayed_service>

// <start_delayed_object>
if err := ctx.Object("MyService", "Mary", "MyHandler").Send("Hi", 5*time.Second); err != nil {
return restate.Void{}, err
}
restate.ObjectSend(ctx, "MyService", "Mary", "MyHandler").Send("Hi", restate.WithDelay(5*time.Second))
// <end_delayed_object>

// <start_ordering>
if err := ctx.Object("MyService", "Mary", "MyHandler").Send("I'm call A", 0); err != nil {
return restate.Void{}, err
}
if err := ctx.Object("MyService", "Mary", "MyHandler").Send("I'm call B", 0); err != nil {
return restate.Void{}, err
}
restate.ObjectSend(ctx, "MyService", "Mary", "MyHandler").Send("I'm call A")
restate.ObjectSend(ctx, "MyService", "Mary", "MyHandler").Send("I'm call B")
// <end_ordering>

return restate.Void{}, nil
return nil
}
Loading

0 comments on commit 956a12f

Please sign in to comment.