Search icon CANCEL
Subscription
0
Cart icon
Cart
Close icon
You have no products in your basket yet
Save more on your purchases!
Savings automatically calculated. No voucher code required
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Software Architecture Patterns for Serverless Systems

You're reading from  Software Architecture Patterns for Serverless Systems

Product type Book
Published in Jul 2021
Publisher Packt
ISBN-13 9781800207035
Pages 436 pages
Edition 1st Edition
Languages
Author (1):
John Gilbert John Gilbert
Profile icon John Gilbert
Toc

Table of Contents (99) Chapters close

Preface
1. Section 1: Establishing an Architectural Vision
2. Chapter 1: Architecting for Innovation
3. Continuously delivering business value
4. Taking control of lead time
5. Dissecting integration styles
6. Enabling autonomous teams with autonomous services
7. Summary
8. Chapter 2: Defining Boundaries and Letting Go
9. Building on SOLID principles
10. Thinking about events first
11. Dividing a system into autonomous subsystems
12. Decomposing a subsystem into autonomous services
13. Dissecting an autonomous service
14. Governing without impeding
15. Summary
16. Section 2: Dissecting the Software Architecture Patterns
17. Chapter 3: Taming the Presentation Tier
18. Zigzagging through time
19. Breaking up the frontend monolith
20. Dissecting micro frontends
21. Designing for offline-first
22. Securing the user experience
23. Observing real user activity
24. Summary
25. Chapter 4: Trusting Facts and Eventual Consistency
26. Living in an eventually consistent world
27. Publishing to an event hub
28. Dissecting the Event Sourcing pattern
29. Processing event streams
30. Designing for failure
31. Optimizing throughput
32. Observing throughput
33. Accounting for regional failover
34. Summary
35. Chapter 5: Turning the Cloud into the Database
36. Escaping data's gravity
37. Embracing data life cycle
38. Turning the database inside out
39. Dissecting the CQRS pattern
40. Keeping data lean
41. Implementing idempotence and order tolerance
42. Modeling data for operational performance
43. Leveraging change data capture
44. Replicating across regions
45. Observing resource metrics
46. Redacting sensitive data
47. Summary
48. Chapter 6: A Best Friend for the Frontend
49. Focusing on user activities
50. Dissecting the Backend for Frontend (BFF) pattern
51. Choosing between GraphQL and REST
52. Implementing different kinds of BFF services
53. Securing a BFF in depth
54. Leveraging multiple regions
55. Observing BFF metrics
56. Optimizing BFF performance
57. Summary
58. Chapter 7: Bridging Intersystem Gaps
59. Creating an anti-corruption layer
60. Dissecting the External Service Gateway pattern
61. Integrating with third-party systems
62. Integrating with other subsystems
63. Integrating across cloud providers
64. Integrating with legacy systems
65. Providing an external API and SPI
66. Tackling common data challenges
67. Managing shared secrets
68. Addressing multi-regional differences
69. Summary
70. Chapter 8: Reacting to Events with More Events
71. Promoting inter-service collaboration
72. Dissecting the Control Service pattern
73. Orchestrating business processes
74. Employing the Saga pattern
75. Calculating event-sourcing snapshots
76. Implementing CEP logic
77. Leveraging ML for control flow
78. Implementing multi-regional cron jobs
79. Summary
80. Section 3: Putting Everything in Motion
81. Chapter 9: Choreographing Deployment and Delivery
82. Optimizing testing for continuous deployment
83. Focusing on risk mitigation
84. Achieving zero-downtime deployments
85. Planning at multiple levels
86. Turning the crank
87. Summary
88. Chapter 10: Don't Delay, Start Experimenting
89. Gaining trust and changing culture
90. Funding products, not projects
91. Dissecting the Strangler pattern
92. Addressing event-first concerns
93. Poly everything
94. Summary
95. Why subscribe?
96. Other Books You May Enjoy
97. Packt is searching for authors like you
98. Share Your Thoughts

Observing resource metrics

In Chapter 2, Defining Boundaries and Letting Go, we covered the importance of observability and the distinction between work and resource metrics. Work metrics identify the behavior of the system from the perspective of the end user, whereas resource metrics provide the low-level supporting details. For each resource, following the USE method, we are interested in its utilization, whether it is saturated, and its error rate. Our datastores are arguable the most important resources. Let's dig into their capacity, throttling, error, and performance metrics.

Capacity

One of the most important decisions we make when we provision a datastore is how much capacity to allocate. For a serverless database, such as Amazon DynamoDB, storage is allocated automatically and we just specify the number of reads and writes needed per second. Other services follow a more traditional approach, such as Elasticsearch, where we need to specify the cluster size and proactively...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}