Skip to content

Commit 766a642

Browse files
authored
Update README.md
Update community and contributing section
1 parent 66e82fe commit 766a642

File tree

1 file changed

+29
-51
lines changed

1 file changed

+29
-51
lines changed

README.md

Lines changed: 29 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -37,35 +37,17 @@ restate
3737
.listen(9080);
3838
```
3939

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:
6951
```shell
7052
npm install @restatedev/restate-sdk
7153
```
@@ -75,13 +57,17 @@ For brand-new projects, we recommend using the [Restate Node Template](https://g
7557
npx -y @restatedev/create-app@latest
7658
```
7759

78-
# Contributing to the SDK
60+
## Contributing
7961

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!
8265

8366
### Building the SDK
8467

68+
#### Prerequisites
69+
- [NodeJS (and npm)](https://nodejs.org) installed
70+
8571
Install the dependencies, build the Restate protocol types (from ProtoBuf), and transpile the TypeScript code:
8672
```shell
8773
npm install
@@ -115,37 +101,29 @@ npm run example
115101
npm run proto
116102
```
117103

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
126105

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.
132107

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!
135110

111+
```shell
112+
npx @restatedev/restate deployment register http://localhost:9080
113+
```
136114

137115
Invoke the example service from the command line:
138116
```shell
139117
curl -X POST http://localhost:8080/greeter/greet -H 'content-type: application/json' -d '{"name": "Pete"}'
140118
```
141119

142-
# Releasing the package
120+
## Releasing the package
143121

144-
## Pre-release
122+
### Pre-release
145123

146124
Before release, make sure the `buf.lock` of the proto descriptors is updated. See [Update the proto descriptors](#update-the-proto-descriptors).
147125

148-
## Releasing via release-it
126+
### Releasing via release-it
149127

150128
Releasing a new npm package from this repo requires:
151129

@@ -160,7 +138,7 @@ npm run release
160138

161139
The actual `npm publish` is run by GitHub actions once a GitHub release is created.
162140

163-
## Releasing manually
141+
### Releasing manually
164142

165143
1. Bump the version field in package.json to `X.Y.Z`
166144
2. Create and push a tag of the form `vX.Y.Z` to the upstream repository

0 commit comments

Comments
 (0)