You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+29-51Lines changed: 29 additions & 51 deletions
Original file line number
Diff line number
Diff line change
@@ -37,35 +37,17 @@ restate
37
37
.listen(9080);
38
38
```
39
39
40
-
Restate takes care of:
41
-
-**reliable execution:** handlers will always run to completion. Intermediate failures result in re-tries
42
-
that use the *durable execution* mechanism to recover partial progress and not duplicate already executed
43
-
steps.
44
-
-**suspending handlers:** long-running handlers suspend when awaiting on a promise (or when explicitly
45
-
sleeping) and resume when that promise is resolved. Lambdas finish, services may scale down.
46
-
-**reliable communication:** handlers communicate with *exactly-once semantics*. Restate reliably delivers
47
-
messages and anchors both sender and receiver in the durable execution to ensure no losses or duplicates
48
-
can happen.
49
-
-**durable timers:** handlers can sleep (and suspend) or schedule calls for later.
50
-
-**isolation:** handlers can be keyed, which makes Restate scheduled them to obey single-writer-per-key
51
-
semantics.
52
-
-**state:** keyed handlers can attach key/value state, which is eagerly pushed into handlers during
53
-
invocation, and written back upon completion. This is particularly efficient for FaaS deployments
54
-
(stateful serverless, yay!).
55
-
-**observability & introspection:** Restate automatically generates Open Telemetry traces for the
56
-
interactions between handlers and gives you a SQL shell to query the distributed state of the application.
57
-
-**gRPC support:** Handlers may optionally be defined as gRPC services, and Restate will act as the transport
58
-
layer for the services/clients in that case.
59
-
60
-
📖 Check out our [docs](https://docs.restate.dev) to get quickly started!
61
-
62
-
🗣️ Join our [discord channel](https://discord.gg/skW3AZ6uGd) to talk to the community.
63
-
64
-
🏠 Visit our [GitHub org](https://github.com/restatedev) for more details.
65
-
66
-
# Using the SDK
67
-
68
-
To use this SDK, simply add the dependency to your project:
40
+
## Community
41
+
42
+
* 🤗️ [Join our online community](https://discord.gg/skW3AZ6uGd) for help, sharing feedback and talking to the community.
43
+
* 📖 [Check out our documentation](https://docs.restate.dev) to get quickly started!
44
+
* 📣 [Follow us on Twitter](https://twitter.com/restatedev) for staying up to date.
45
+
* 🙋 [Create a GitHub issue](https://github.com/restatedev/sdk-typescript/issues) for requesting a new feature or reporting a problem.
46
+
* 🏠 [Visit our GitHub org](https://github.com/restatedev) for exploring other repositories.
47
+
48
+
## Using the SDK
49
+
50
+
To use this SDK, add the dependency to your project:
69
51
```shell
70
52
npm install @restatedev/restate-sdk
71
53
```
@@ -75,13 +57,17 @@ For brand-new projects, we recommend using the [Restate Node Template](https://g
75
57
npx -y @restatedev/create-app@latest
76
58
```
77
59
78
-
# Contributing to the SDK
60
+
##Contributing
79
61
80
-
### Prerequisites
81
-
-[NodeJS (and npm)](https://nodejs.org) installed
62
+
We’re excited if you join the Restate community and start contributing!
63
+
Whether it is feature requests, bug reports, ideas & feedback or PRs, we appreciate any and all contributions.
64
+
We know that your time is precious and, therefore, deeply value any effort to contribute!
82
65
83
66
### Building the SDK
84
67
68
+
#### Prerequisites
69
+
-[NodeJS (and npm)](https://nodejs.org) installed
70
+
85
71
Install the dependencies, build the Restate protocol types (from ProtoBuf), and transpile the TypeScript code:
86
72
```shell
87
73
npm install
@@ -115,37 +101,29 @@ npm run example
115
101
npm run proto
116
102
```
117
103
118
-
### Testing end-to-end with Restate Runtime
119
-
120
-
This requires the [Docker Engine](https://docs.docker.com/engine/install/) to launch the Restate runtime for testing.
121
-
122
-
Start the runtime in a Docker container and tell Restate about the example service. This requires the example to be running, to make the discovery succeed!
123
-
- On Linux:
124
-
```shell
125
-
docker run --name restate_dev --rm --network=host docker.io/restatedev/restate:latest
104
+
### Testing end-to-end with Restate Server
126
105
127
-
curl -X POST http://localhost:9070/deployments -H 'content-type: application/json' -d '{"uri": "http://localhost:9080"}'
128
-
```
129
-
- On macOS:
130
-
```shell
131
-
docker run --name restate_dev --rm -p 9070:9070 -p 8080:8080 docker.io/restatedev/restate:latest
106
+
[Launch the Restate Server](https://github.com/restatedev/restate?tab=readme-ov-file#install-the-server) for testing your SDK changes.
132
107
133
-
curl -X POST http://localhost:9070/deployments -H 'content-type: application/json' -d '{"uri": "http://host.docker.internal:9080"}'
134
-
```
108
+
Register a service with the server via the Restate CLI.
109
+
This requires that the service is running to make the discovery succeed!
0 commit comments