Skip to content

Commit 81963e9

Browse files
joshthowardOxyjunhyperlint-ai[bot]lambrospetrou
authored
Add reference documentation for DurableObjectState (#17471)
* Add reference documentation for DurableObjectState * Apply suggestions from code review Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> Co-authored-by: Lambros Petrou <[email protected]> * PCX review. Adding glossary term for "event context", definition TBC. * Adding missing / from some links. * Adding in proper definition for "event context" in the glossary. * Cleaning up "Durable Object instance" to "Durable Object", to align with glossary definition. * Fixing broken method formatting. * Temporarily reverting files to avoid merge conflict. * Durable Object instance -> Durable Object * Adding link in glossary to pricing page. --------- Co-authored-by: Jun Lee <[email protected]> Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> Co-authored-by: Lambros Petrou <[email protected]>
1 parent f6510a2 commit 81963e9

File tree

26 files changed

+381
-116
lines changed

26 files changed

+381
-116
lines changed

src/content/changelogs/workers.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ entries:
206206
- publish_date: "2023-05-05"
207207
description: |-
208208
- The new `nodeJsCompatModule` type can be used with a Worker bundle to emulate a Node.js environment. Common Node.js globals such as `process` and `Buffer` will be present, and `require('...')` can be used to load Node.js built-ins without the `node:` specifier prefix.
209-
- Fixed an issue where websocket connections would be disconnected when updating workers. Now, only websockets connected to Durable Object instances are disconnected by updates to that Durable Object’s code.
209+
- Fixed an issue where websocket connections would be disconnected when updating workers. Now, only WebSockets connected to Durable Objects are disconnected by updates to that Durable Object’s code.
210210
- publish_date: "2023-04-28"
211211
description: |-
212212
- The Web Crypto API now supports curves Ed25519 and X25519 defined in the Secure Curves specification.

src/content/docs/durable-objects/api/alarms.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Durable Objects alarms allow you to schedule the Durable Object to be woken up a
1313

1414
Notably:
1515

16-
- Each Durable Object instance is able to schedule a single alarm at a time by calling `setAlarm()`.
16+
- Each Durable Object is able to schedule a single alarm at a time by calling `setAlarm()`.
1717
- Alarms have guaranteed at-least-once execution and are retried automatically when the `alarm()` handler throws.
1818
- Retries are performed using exponential backoff starting at a 2 second delay from the first failure with up to 6 retries allowed.
1919

src/content/docs/durable-objects/api/id.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ import { Render, Tabs, TabItem } from "~/components";
99

1010
## Description
1111

12-
A Durable Object ID is a 64-digit hexadecimal number used to identify a Durable Object instance. Not all 64-digit hex numbers are valid IDs. Durable Object IDs are constructed indirectly via the [`DurableObjectNamespace`](/durable-objects/api/namespace) interface.
12+
A Durable Object ID is a 64-digit hexadecimal number used to identify a Durable Object. Not all 64-digit hex numbers are valid IDs. Durable Object IDs are constructed indirectly via the [`DurableObjectNamespace`](/durable-objects/api/namespace) interface.
1313

14-
The `DurableObjectId` interface refers to a new or existing Durable Object instance. This interface is most frequently used by [`DurableObjectNamespace::get`](/durable-objects/api/namespace/#get) to obtain a [`DurableObjectStub`](/durable-objects/api/stub) for submitting requests to a Durable Object instance. Note that creating an ID for a Durable Object instance does not create the Durable Object. The Durable Object is created lazily after creating a stub from a `DurableObjectId`. This ensures that objects are not constructed until they are actually accessed.
14+
The `DurableObjectId` interface refers to a new or existing Durable Object. This interface is most frequently used by [`DurableObjectNamespace::get`](/durable-objects/api/namespace/#get) to obtain a [`DurableObjectStub`](/durable-objects/api/stub) for submitting requests to a Durable Object. Note that creating an ID for a Durable Object does not create the Durable Object. The Durable Object is created lazily after creating a stub from a `DurableObjectId`. This ensures that objects are not constructed until they are actually accessed.
1515

1616
:::note[Logging]
1717

18-
If you are experiencing an issue with a particular Durable Object instance, you may wish to log the `DurableObjectId` from your Worker and include it in your Cloudflare support request.
18+
If you are experiencing an issue with a particular Durable Object, you may wish to log the `DurableObjectId` from your Worker and include it in your Cloudflare support request.
1919

2020
:::
2121

src/content/docs/durable-objects/api/namespace.mdx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import { Render, Tabs, TabItem } from "~/components";
99

1010
## Description
1111

12-
A Durable Object namespace is a set of Durable Object instances that are backed by the same Durable Object class. There is only one Durable Object namespace per class. A Durable Object namespace can contain any number of Durable Object instances.
12+
A Durable Object namespace is a set of Durable Objects that are backed by the same Durable Object class. There is only one Durable Object namespace per class. A Durable Object namespace can contain any number of Durable Objects.
1313

14-
The `DurableObjectNamespace` interface is used to obtain a reference to new or existing Durable Object instances. The interface is accessible from the fetch handler on a Cloudflare Worker via the `env` parameter, which is the standard interface when referencing bindings declared in `wrangler.toml`.
14+
The `DurableObjectNamespace` interface is used to obtain a reference to new or existing Durable Objects. The interface is accessible from the fetch handler on a Cloudflare Worker via the `env` parameter, which is the standard interface when referencing bindings declared in `wrangler.toml`.
1515

16-
This interface defines several [methods](/durable-objects/api/namespace/#methods) that can be used to create an ID for a Durable Object instance. Note that creating an ID for a Durable Object instance does not create the Durable Object. The Durable Object is created lazily after calling [`DurableObjectNamespace::get`](/durable-objects/api/namespace/#get) to create a [`DurableObjectStub`](/durable-objects/api/stub) from a `DurableObjectId`. This ensures that objects are not constructed until they are actually accessed.
16+
This interface defines several [methods](/durable-objects/api/namespace/#methods) that can be used to create an ID for a Durable Object. Note that creating an ID for a Durable Object does not create the Durable Object. The Durable Object is created lazily after calling [`DurableObjectNamespace::get`](/durable-objects/api/namespace/#get) to create a [`DurableObjectStub`](/durable-objects/api/stub) from a `DurableObjectId`. This ensures that objects are not constructed until they are actually accessed.
1717

1818
<Tabs> <TabItem label="JavaScript" icon="seti:javascript">
1919

@@ -31,7 +31,7 @@ export default {
3131
// Every unique ID refers to an individual instance of the Durable Object class
3232
const id = env.MY_DURABLE_OBJECT.idFromName("foo");
3333

34-
// A stub is a client Object used to invoke methods defined by the Durable Object instance
34+
// A stub is a client Object used to invoke methods defined by the Durable Object
3535
const stub = env.MY_DURABLE_OBJECT.get(id);
3636
...
3737
}
@@ -58,7 +58,7 @@ export default {
5858
// Every unique ID refers to an individual instance of the Durable Object class
5959
const id = env.MY_DURABLE_OBJECT.idFromName("foo");
6060

61-
// A stub is a client Object used to invoke methods defined by the Durable Object instance
61+
// A stub is a client Object used to invoke methods defined by the Durable Object
6262
const stub = env.MY_DURABLE_OBJECT.get(id);
6363
...
6464
}
@@ -71,7 +71,7 @@ export default {
7171

7272
### `idFromName`
7373

74-
`idFromName` creates a unique [`DurableObjectId`](/durable-objects/api/id) which refers to an individual instance of the Durable Object class. Named Durable Object instances are the most common method of referring to Durable Object instances.
74+
`idFromName` creates a unique [`DurableObjectId`](/durable-objects/api/id) which refers to an individual instance of the Durable Object class. Named Durable Objects are the most common method of referring to Durable Objects.
7575

7676
```js
7777
const fooId = env.MY_DURABLE_OBJECT.idFromName("foo");
@@ -80,15 +80,15 @@ const barId = env.MY_DURABLE_OBJECT.idFromName("bar");
8080

8181
#### Parameters
8282

83-
- A required string to be used to generate a [`DurableObjectId`](/durable-objects/api/id) corresponding to the name of a Durable Object instance.
83+
- A required string to be used to generate a [`DurableObjectId`](/durable-objects/api/id) corresponding to the name of a Durable Object.
8484

8585
#### Return values
8686

8787
- A [`DurableObjectId`](/durable-objects/api/id) referring to an instance of a Durable Object class.
8888

8989
### `newUniqueId`
9090

91-
`newUniqueId` creates a randomly generated and unique [`DurableObjectId`](/durable-objects/api/id) which refers to an individual instance of the Durable Object class. IDs created using `newUniqueId`, will need to be stored as a string in order to refer to the same Durable Object again in the future. For example, the ID can be stored in Workers KV, another Durable Object instance, or in a cookie in the user's browser.
91+
`newUniqueId` creates a randomly generated and unique [`DurableObjectId`](/durable-objects/api/id) which refers to an individual instance of the Durable Object class. IDs created using `newUniqueId`, will need to be stored as a string in order to refer to the same Durable Object again in the future. For example, the ID can be stored in Workers KV, another Durable Object, or in a cookie in the user's browser.
9292

9393
```js
9494
const id = env.MY_DURABLE_OBJECT.newUniqueId();
@@ -99,7 +99,7 @@ const euId = env.MY_DURABLE_OBJECT.newUniqueId({ jurisdiction: "eu" });
9999

100100
The first time you get a Durable Object stub based on an ID derived from a name, the system has to take into account the possibility that a Worker on the opposite side of the world could have coincidentally accessed the same named Durable Object at the same time. To guarantee that only one instance of the Durable Object is created, the system must check that the Durable Object has not been created anywhere else. Due to the inherent limit of the speed of light, this round-the-world check can take up to a few hundred milliseconds. `newUniqueId` can skip this check.
101101

102-
After this first use, the location of the Durable Object instance will be cached around the world so that subsequent lookups are faster.
102+
After this first use, the location of the Durable Object will be cached around the world so that subsequent lookups are faster.
103103

104104
:::
105105

@@ -127,9 +127,9 @@ After this first use, the location of the Durable Object instance will be cached
127127

128128
### `get`
129129

130-
`get` obtains a [`DurableObjectStub`](/durable-objects/api/stub) from a [`DurableObjectId`](/durable-objects/api/id) which can be used to invoke methods on a Durable Object instance.
130+
`get` obtains a [`DurableObjectStub`](/durable-objects/api/stub) from a [`DurableObjectId`](/durable-objects/api/id) which can be used to invoke methods on a Durable Object.
131131

132-
This method returns the stub immediately, often before a connection has been established to the Durable Object instance. This allows requests to be sent to the instance right away, without waiting for a network round trip.
132+
This method returns the stub immediately, often before a connection has been established to the Durable Object. This allows requests to be sent to the instance right away, without waiting for a network round trip.
133133

134134
```js
135135
const id = env.MY_DURABLE_OBJECT.newUniqueId();
@@ -147,7 +147,7 @@ const stub = env.MY_DURABLE_OBJECT.get(id);
147147

148148
### `jurisdiction`
149149

150-
`jurisdiction` creates a subnamespace from a namespace where all Durable Object instance IDs and references created from that subnamespace will be restricted to the specified [jurisdiction](/durable-objects/reference/data-location/#restrict-durable-objects-to-a-jurisdiction).
150+
`jurisdiction` creates a subnamespace from a namespace where all Durable Object IDs and references created from that subnamespace will be restricted to the specified [jurisdiction](/durable-objects/reference/data-location/#restrict-durable-objects-to-a-jurisdiction).
151151

152152
```js
153153
const subnamespace = env.MY_DURABLE_OBJECT.jurisdiction("foo");

0 commit comments

Comments
 (0)