About the Author |
|
xi | |
About the Technical Reviewer |
|
xiii | |
Introduction |
|
xv | |
|
|
1 | (6) |
|
|
1 | (3) |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
5 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
Chapter 2 Grains and Silos |
|
|
7 | (8) |
|
|
7 | (2) |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
Message Delivery Guarantees |
|
|
10 | (1) |
|
|
11 | (1) |
|
|
12 | (1) |
|
|
13 | (1) |
|
Cluster Membership Protocol |
|
|
13 | (1) |
|
|
14 | (1) |
|
|
14 | (1) |
|
|
15 | (14) |
|
|
15 | (1) |
|
|
16 | (11) |
|
|
16 | (1) |
|
Creating Your First Grains Interface |
|
|
17 | (2) |
|
Creating Your First Grains Class |
|
|
19 | (3) |
|
|
22 | (2) |
|
Creating Your First Client |
|
|
24 | (3) |
|
|
27 | (2) |
|
Chapter 4 Debugging an Orleans Application |
|
|
29 | (8) |
|
|
29 | (5) |
|
|
34 | (1) |
|
Configuring Application Insights |
|
|
34 | (1) |
|
Writing a Custom Consumer |
|
|
35 | (1) |
|
|
35 | (2) |
|
Chapter 5 Orleans Dashboard |
|
|
37 | (8) |
|
|
37 | (7) |
|
|
39 | (2) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
43 | (1) |
|
|
44 | (1) |
|
Chapter 6 Adding Persistence |
|
|
45 | (8) |
|
|
45 | (1) |
|
Adding State to the Grains |
|
|
46 | (3) |
|
Configuring the Storage Provider |
|
|
49 | (2) |
|
|
51 | (2) |
|
Chapter 7 Adding ASP.NET Core |
|
|
53 | (6) |
|
Adding an ASP.NET Web API Project |
|
|
53 | (2) |
|
Calling Grains from Controller Actions |
|
|
55 | (2) |
|
|
57 | (2) |
|
|
59 | (6) |
|
|
59 | (2) |
|
Adding Silos Configuration |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
63 | (2) |
|
|
65 | (12) |
|
|
65 | (1) |
|
|
66 | (1) |
|
Publishing Events from Grains |
|
|
67 | (4) |
|
Subscribing to Streams in Grains |
|
|
71 | (3) |
|
|
74 | (2) |
|
|
76 | (1) |
|
Chapter 10 Timers and Reminders |
|
|
77 | (8) |
|
|
77 | (1) |
|
|
77 | (1) |
|
Adding a Timer to the RobotGrain |
|
|
78 | (3) |
|
Adding a Reminder to the RobotGrain |
|
|
81 | (3) |
|
|
84 | (1) |
|
|
85 | (12) |
|
Motivation for Transactions |
|
|
85 | (1) |
|
|
86 | (1) |
|
Creating an Azure Storage Account |
|
|
86 | (1) |
|
|
87 | (1) |
|
|
88 | (2) |
|
Implementing Grains Classes |
|
|
90 | (3) |
|
|
93 | (2) |
|
|
95 | (2) |
|
Chapter 12 Event Sourced Grains |
|
|
97 | (8) |
|
|
97 | (1) |
|
Introducing Event Sourcing |
|
|
97 | (1) |
|
|
98 | (1) |
|
Implementing the Grains Class |
|
|
99 | (3) |
|
|
102 | (1) |
|
|
103 | (1) |
|
|
104 | (1) |
|
Chapter 13 Updating Grains |
|
|
105 | (4) |
|
|
105 | (1) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
108 | (1) |
|
|
109 | (6) |
|
|
109 | (1) |
|
|
110 | (1) |
|
|
111 | (1) |
|
|
112 | (1) |
|
|
112 | (1) |
|
|
113 | (1) |
|
|
113 | (1) |
|
Controlling Grains Life Cycle |
|
|
114 | (1) |
|
|
114 | (1) |
|
Chapter 15 Advanced Features |
|
|
115 | (14) |
|
|
115 | (1) |
|
|
116 | (2) |
|
|
118 | (1) |
|
|
119 | (1) |
|
|
120 | (4) |
|
|
124 | (5) |
|
|
129 | (8) |
|
|
129 | (4) |
|
When did you first decide to use Orleans? |
|
|
129 | (1) |
|
|
130 | (1) |
|
How would you build something without an actor framework? |
|
|
130 | (1) |
|
You're currently using Orleans in production; could you describe your architecture? |
|
|
131 | (1) |
|
How easy is Orleans to manage? |
|
|
131 | (1) |
|
Over the years, you've picked Orleans for several projects; what keeps bringing you back? |
|
|
131 | (1) |
|
What do you see as Orleans' greatest strengths/weaknesses? |
|
|
132 | (1) |
|
What would you change about Orleans? |
|
|
132 | (1) |
|
Why do you think Orleans isn't more popular? |
|
|
132 | (1) |
|
|
133 | (4) |
|
Where did the name for Orleans come from? |
|
|
133 | (1) |
|
What was it like to take an internal research project and publish it as open source? |
|
|
133 | (1) |
|
What benefits did you see from open sourcing Orleans? |
|
|
134 | (1) |
|
Were there any use cases for Orleans that took you by surprise? |
|
|
134 | (1) |
|
Where do development teams get the most value from using Orleans? |
|
|
135 | (1) |
|
You have moved on from Orleans now, but where do you see the future of cloud-native applications going? |
|
|
135 | (2) |
Index |
|
137 | |