Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Versioning documentation #61

Merged
merged 6 commits into from
Jul 12, 2023
Merged

Versioning documentation #61

merged 6 commits into from
Jul 12, 2023

Conversation

slinkydeveloper
Copy link
Contributor

@slinkydeveloper slinkydeveloper commented Jul 11, 2023

This PR contains a first pass at the versioning documentation. Fix #55

Copy link
Contributor

@tillrohrmann tillrohrmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for creating the documentation for upgrading services @slinkydeveloper. The changes look good to me. Maybe @gvdongen also wants to give it a quick pass before merging it.

docs/deployment-operations/deployment.md Outdated Show resolved Hide resolved
docs/deployment-operations/deployment.md Outdated Show resolved Hide resolved
After deploying a service endpoint, in order to use it, it must be registered to Restate as follows:

```bash
$ curl <RESTATE_META_ENDPOINT>/endpoints --json '{"uri": "<SERVICE_ENDPOINT_URI>"}'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is --json supported by all curl version that we want to support?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't know, see #31. The deployments page was using the --json parameter, so I did the same here. I can replace with the old command template, but TBH I think this is better to read.

Copy link
Contributor

@gvdongen gvdongen Jul 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a solution is specifying that you need a curl version more recent than 7.82.0?
So people for who this fails, understand that they need to upgrade curl?
But I also think that there should be a single unified command across the docs for discovery.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a suggestion to specify the curl (>v7.82.0) requirement

docs/deployment-operations/versioning.md Outdated Show resolved Hide resolved
docs/deployment-operations/versioning.md Outdated Show resolved Hide resolved
docs/deployment-operations/versioning.md Outdated Show resolved Hide resolved
docs/deployment-operations/versioning.md Outdated Show resolved Hide resolved
docs/deployment-operations/versioning.md Outdated Show resolved Hide resolved
docs/deployment-operations/versioning.md Outdated Show resolved Hide resolved
Comment on lines +81 to +82
* You can't change the instance type of a service.
* You can't modify the key fields in Keyed services.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe link to the definition of instance types and keyed services.

Copy link
Contributor Author

@slinkydeveloper slinkydeveloper Jul 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My understanding is that there isn't a page dedicated to that, nor in general to our service contracts, see #60

Copy link
Contributor

@gvdongen gvdongen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Easy to read and clear 👍
A few small comments but looks good to me.


As described in the [deployment documentation](./deployment.md#deploying-services), *service endpoints* are immutable, and are assumed to be reacheable throughout the entire lifecycle of an invocation. In order to deploy any change to a service, either in the protobuf definition and/or in the business logic, a new service endpoint should be deployed and registered.

When registering a new service endpoint, Restate will detect if it contains already registered services, and will treat them as new revisions. Any new invocations to that service will be executed by the newly registered service endpoint, thus guaranteeing that new invocations are always routed to the latest service revision, while *old* invocations will continue to use the previous service endpoint. It must be guaranteed that the old service endpoint lives until all the existing invocations complete.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Restate will detect if it contains already registered services -> Based on what does it detect that it is a new revision?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Service name.

Co-authored-by: Giselle van Dongen <[email protected]>
@slinkydeveloper slinkydeveloper merged commit 8e7ebf9 into main Jul 12, 2023
1 check passed
@slinkydeveloper slinkydeveloper deleted the issues/55 branch July 12, 2023 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Upgrading a service
3 participants