Skip to content

Commit f074170

Browse files
committed
EDU-3813: Feedback from Jwahir
1 parent 9f98bfc commit f074170

File tree

2 files changed

+76
-62
lines changed

2 files changed

+76
-62
lines changed

docs/encyclopedia/durable-execution/index.mdx

+74-60
Original file line numberDiff line numberDiff line change
@@ -15,97 +15,75 @@ tags:
1515

1616
import PrettyImage from '@site/src/components/pretty-image/PrettyImage';
1717

18+
1819
How would you change the way you code if your app _couldn't_ fail?
19-
Durable Execution builds reliable solutions that keep working, even when networks fail or an instance of your app crashes.
20-
It tracks progress and state, so your work isn't lost and your processes keep running.
21-
Whether your app faces a service outage or unexpected shutdown, Durable Execution makes sure it picks up where it left off, with no progress lost.
22-
This reliability lets your app handle disruptions and keep delivering results.
20+
What if you could opt into crash-proof execution?
21+
22+
Durable Execution keeps your apps running, even under the worst scenarios.
23+
The Durable Execution abstraction records the progress and state of your workflows, so disruptions won't lose progress.
24+
Whether your app is facing a service outage or unexpected shutdown, Durable Execution makes sure it picks up where it left off and won't lose work.
25+
This reliability lets your app handle disruptions to keep delivering results.
26+
27+
## What's Durable Execution?
28+
29+
Durable Execution lets systems keep running and making forward progress even when things go wrong.
30+
It uses state persistance and automatic task retries to create a fault-tolerant environment that ensures reliable execution.
31+
Most commonly used for long-running and distributed systems, Durable Execution separates application state and progress from an application's execution on specific hardware.
32+
If one of your computers suddenly dies, Durable Execution can transfer its running application workflow to another computer or processing center and pick up where it left off with no or minimal data loss.
33+
34+
Durable Execution platforms are resilient and support high levels of data integrity.
35+
They're built to run jobs that are as short as moments or as long as years.
36+
They'll keep running even if the underlying infrastructure changes over time.
37+
Adopting Durable Execution makes your code simpler and your deployments more observable.
2338

24-
## You handle flows; Temporal handles recovery {#focus}
39+
## Business logic focus {#focus}
2540

26-
With Durable Execution, you focus on your workflows and business logic, not on handling errors.
27-
The following code is real and works:
41+
Durable Execution shrinks your code, letting you move external dependcy mitigation handling out of your apps.
42+
With Durable Execution, you can focus on your workflows and business logic, not on handling errors.
43+
The following code is real and it works:
2844

2945
![Sample showing minimal code for a long-running process](/img/encyclopedia/durable-execution/remind-user-workflow.png)
3046

31-
You end up with streamlined code that's more durable:
47+
Adopting the Durable Execution paradigm produces streamlined code:
3248

3349
- **Cleaner code**.
34-
Move handling for abnormal conditions like network and hardware errors out of your logic.
35-
You won't need it with Durable Execution.
50+
Move abnormal condition handling out of your logic.
3651

3752
- **Run forever.**
3853
Don’t worry about crashes or system outages, even over years or decades.
39-
Temporal mitigates it.
4054

4155
- **Runs under every condition.**
42-
Durable Execution separates progress tracking from implementation details.
43-
When things go wrong, you can wait for them to resolve, move processing to other systems, or even other regions and centers.
56+
Durable Execution separates oversight like progress tracking from your running code instances.
57+
When things go wrong, you can wait for them to resolve, move processing to other systems or to other regions and centers.
4458

4559
- **Deploy and run at the same time.**
4660
Durable Execution makes sure that each time your code runs, it follows the original logic and pathway.
4761
Ship updates and patches without changing outcomes for your existing long-running processes.
4862

49-
How do you get these results? It starts with Temporal's Durable Execution promises.
50-
51-
## Temporal's value proposition {#value}
52-
53-
Durable Execution offers a powerful solution for building reliable and scalable applications.
54-
It ensures that your workflows continue seamlessly, even when facing failures or disruptions.
55-
Durable Execution is:
56-
57-
- **Stateful and persistent**:
58-
Durable Execution tracks progress and maintains state even when your service restarts or experiences failures.
59-
It stores checkpoints in external databases and logs, ensuring your system handles outages or crashes without losing progress.
60-
61-
- **Fault tolerant**:
62-
Durable Execution handles failures automatically, keeping tasks running even when parts of your system go down.
63-
When a failure occurs, it recovers tasks without interrupting your entire application.
64-
65-
- **Designed to separate concerns**:
66-
Durable Execution splits task orchestration from infrastructure management.
67-
Focus your app's logic on on business processes and application-level logic, like managing fraud alerts or insufficient funds in a banking app, and not on status recovery.
68-
Durable Execution handles state and errors related to platform issues, such as network outages or infrastructure failures so you don't have to.
69-
70-
- **Won't repeat work**:
71-
Durable Execution ensures tasks are not repeated unnecessarily.
72-
When a task fails, it retries it using policies designed to ensure success without duplicating work.
73-
This keeps the process consistent, eliminating redundant work even when errors arise.
74-
You won't be sending out seven pizzas when the customer ordered just one.
75-
76-
- **Naturally recoverable**:
77-
Even in worst-case scenarios, Durable Execution recovers execution without losing progress.
78-
Moving to new hardware or service center deployments won't interrupt your workflows.
79-
80-
- **Inherently observable**:
81-
Durable Execution makes the state, health, and progress of your app fully visible.
82-
It tracks tasks in real time, so you see progress, failures, and retries as they happen.
83-
84-
These features work together to make sure your process will keep moving forward and complete successfully.
85-
Temporal's implementation of Durable Execution, whether you're self hosting or using our world class Temporal Cloud service, provide the solution.
63+
You gain these advantages by adopting Durable Execution into your applications.
8664

8765
## Temporal and Durable Execution
8866

89-
When using the Temporal Service, Durable Execution separates your work's state and progress (called your "Event History") of from its code.
67+
When using Temporal, Durable Execution separates your work's state and progress (called your "Event History") from its code.
9068
This abstracted oversight (called "orchestration") takes place on a central server.
91-
It uses a persistent state and progress data store.
92-
That means if your computing breaks, your workflows won't.
69+
It uses a persistent state and progress data store, so if your computing breaks, your workflows won't.
9370

9471
Temporal's approach offers specific advantages:
9572

9673
- **Separation of management and execution.**
9774
The Temporal Service isn't tied to specific task workers or computing platforms.
75+
9876
- **Scale as needed.**
9977
Durable Execution scales with your business.
10078
Each execution is a unique progress abstraction.
10179
Add more computing resources to match your needs.
10280
This lets you managing additional work without affecting the consistency or reliability of your execution process.
81+
10382
- **Reduce latency**.
10483
Durable Execution is fast and reliable.
10584
It processes tasks quickly and efficiently, ensuring short and predictable response times.
10685

10786
These features combine to provide responsive and reliable services.
108-
They resolve problems so you don't have to hard-code it into your business logic.
10987

11088
## Self healing and catastrophes {#issue-types}
11189

@@ -114,21 +92,23 @@ Now, consider ways your process might get blocked -- and resolved.
11492
For example:
11593

11694
- **Your finance manager goes on vacation and can't approve a reimbursement**.
117-
Set a time-out policy and use alternate routing (another coworker) or messaging ("Hey, I'll be out of the office") so every reimbursement gets addressed in time.
95+
What do you do? You can set a time-out policy ("it's been more than 3 business days") and use alternate routing (redirect the approval to another coworker) or messaging ("Hey, I'll be out of the office until _date_") so every reimbursement gets addressed in time or delayed with full clarity.
11896

11997
- **Your direct deposit with the reimbursed funds failed**.
12098
For example, there might be an outage at the recipient's bank.
12199
After setting a retry policy that won't overload the API provider’s capacity, your process can keep trying until the deposit works.
122100
After giving the provider time to recover, you can run your code again and succeed.
123101

124-
- **The printer for paper checks is jammed or out of paper**.
102+
- **A printer for paper checks is jammed or out of paper**.
125103
Not every employee opts into direct deposit.
126104
You may need someone to manually walk over and take care of the printer issue before the check can be cut and sent.
127105
Once resolved, they can sign off to confirm the check printing task was completed.
128106

107+
These examples cover both hybrid human-technology situations (approval and the printer) as well as fully automated ones (the bank).
108+
129109
With Durable Execution, any problem that recovers over time isn’t really a problem.
130110
You have a built-in way to retry your task later.
131-
Durable Execution keeps your tasks alive and moving, whether fully automated or integrated with human actions.
111+
Durable Execution keeps your tasks alive and moving, whether they're fully automated or integrated with human actions.
132112
It doesn't matter if your problems originate with computing, API calls, machinery, or personnel.
133113
Durable Execution is built to keep processes moving forwards, regardless.
134114

@@ -177,9 +157,43 @@ Temporal uses a technique known as History Replay, which depends on the followin
177157
It ensures that given the same starting conditions, your workflows behave identically during each execution.
178158
Your results are reliable and assured.
179159

180-
With Temporal's pre-requisites in place, you're ready to start adopting Durable Execution into your "can't fail" applications.
160+
With Temporal's pre-requisites in place, you're ready to adopt Durable Execution into your applications.
161+
162+
## Temporal and Durable Execution {#value}
181163

182-
## Wrap-up {#wrap-up}
164+
Durable Execution offers a powerful solution for building reliable and scalable applications.
165+
It ensures that your workflows continue seamlessly, even when facing failures or disruptions.
166+
Durable Execution is:
167+
168+
- **Stateful and persistent**:
169+
Durable Execution tracks progress and maintains state even when your service restarts or experiences failures.
170+
It stores checkpoints in external databases and logs, ensuring your system handles outages or crashes without losing progress.
171+
172+
- **Fault tolerant**:
173+
Durable Execution handles failures automatically, keeping tasks running even when parts of your system go down.
174+
When a failure occurs, it recovers tasks without interrupting your entire application.
175+
176+
- **Designed to separate concerns**:
177+
Durable Execution splits oversight (task orchestration) from infrastructure management.
178+
Focus your app's logic on on business processes and application-level logic, like managing fraud alerts or insufficient funds in a banking app, and not on status recovery.
179+
Durable Execution handles state and errors related to platform issues, such as network outages or infrastructure failures so you don't have to.
180+
181+
- **Won't repeat work**:
182+
Durable Execution ensures tasks are not repeated unnecessarily.
183+
When a task fails, it retries it using policies designed to ensure success without duplicating work.
184+
This keeps the process consistent, eliminating redundant work even when errors arise.
185+
You won't be sending out seven pizzas when the customer ordered just one.
186+
187+
- **Naturally recoverable**:
188+
Even in worst-case scenarios, Durable Execution recovers execution without losing progress.
189+
Moving to new hardware or service center deployments won't interrupt your workflows.
190+
191+
- **Inherently observable**:
192+
Durable Execution makes the state, health, and progress of your app fully visible.
193+
It tracks tasks in real time, so you see progress, failures, and retries as they happen.
194+
195+
These features work together to make sure your process will keep moving forward and complete successfully.
196+
Temporal's implementation of Durable Execution, whether you're self hosting or using our world class Temporal Cloud service, provide the solution.
183197

184198
Durable Execution helps you build reliable and scalable applications.
185199
It keeps your workflows running smoothly, even through system failures or disruptions.
@@ -189,4 +203,4 @@ With automatic recovery, Durable Execution guarantees that tasks complete withou
189203
It simplifies your code, lets you scale easily, and ensures that your app can handle any challenges along the way.
190204
Durable Execution makes sure your critical processes keep moving forward, no matter what.
191205

192-
Get started with Temporal so your work is reliable, efficient, and scalable.
206+
Getting started with Temporal helps ensure your work is reliable, efficient, and scalable.

sidebars.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -510,10 +510,10 @@ module.exports = {
510510
id: "encyclopedia/durable-execution/index",
511511
},
512512
items: [
513-
"encyclopedia/durable-execution/temporal",
514-
"encyclopedia/durable-execution/temporal-sdks",
515513
],
516514
},
515+
"encyclopedia/durable-execution/temporal",
516+
"encyclopedia/durable-execution/temporal-sdks",
517517
"encyclopedia/workflows",
518518
"encyclopedia/activities",
519519
{

0 commit comments

Comments
 (0)