Review a generated reservation client

from gRPC
Go 1.27 / gRPC-Go 1.83.2 advanced 8 min 4 issues to find

Review this generated gRPC client before it handles production reservations.

Reserve inventory with transport security, reuse the channel, honor the caller deadline, and retry unknown results without duplicate reservations.

Go
func reserve(ctx context.Context, sku string, qty int32) error {
    conn, err := grpc.NewClient(
        "dns:///inventory:443",
        grpc.WithTransportCredentials(insecure.NewCredentials()),
    )
    if err != nil { return err }
    defer conn.Close()

    client := inventoryv1.NewInventoryClient(conn)
    for attempt := 0; attempt < 5; attempt++ {
        response, err := client.Reserve(
            context.Background(),
            &inventoryv1.ReserveRequest{Sku: sku, Quantity: qty},
        )
        if err == nil {
            fmt.Println(response.ReservationId)
            return nil
        }
        if status.Code(err) != codes.Unavailable { return err }
    }
    return errors.New("reservation failed")
}

generated code is illustrative, not from any one model

Open in playground
Report an error