@thanh01.pmt/curriculum-kit 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +108 -107
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +108 -107
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -821,6 +821,7 @@ declare const GRAPHIC_ORGANIZER_TEMPLATE = "---\nid: \"{{ID}}\"\ntitle: \"{{TITL
|
|
|
821
821
|
*
|
|
822
822
|
* Reusable catalog of production-ready single slide templates with Marp YAML layout comments,
|
|
823
823
|
* presenter notes, and pedagogical structures for curriculum authoring & LLM generation.
|
|
824
|
+
* All content, templates, and examples are strictly authored in English.
|
|
824
825
|
*/
|
|
825
826
|
type SlideLayoutCategory = 'cover' | 'content' | 'split' | 'code' | 'metrics' | 'diagram' | 'quote' | 'assessment';
|
|
826
827
|
interface LayoutBoxConfig {
|
package/dist/index.d.ts
CHANGED
|
@@ -821,6 +821,7 @@ declare const GRAPHIC_ORGANIZER_TEMPLATE = "---\nid: \"{{ID}}\"\ntitle: \"{{TITL
|
|
|
821
821
|
*
|
|
822
822
|
* Reusable catalog of production-ready single slide templates with Marp YAML layout comments,
|
|
823
823
|
* presenter notes, and pedagogical structures for curriculum authoring & LLM generation.
|
|
824
|
+
* All content, templates, and examples are strictly authored in English.
|
|
824
825
|
*/
|
|
825
826
|
type SlideLayoutCategory = 'cover' | 'content' | 'split' | 'code' | 'metrics' | 'diagram' | 'quote' | 'assessment';
|
|
826
827
|
interface LayoutBoxConfig {
|
package/dist/index.mjs
CHANGED
|
@@ -4232,9 +4232,9 @@ _Unit: {{UNIT_ID}} | Module: {{MODULE_ID}} | Format: Mermaid Diagrams + Printabl
|
|
|
4232
4232
|
var SLIDE_LAYOUT_PRESETS = [
|
|
4233
4233
|
{
|
|
4234
4234
|
id: "title-hero",
|
|
4235
|
-
name: "
|
|
4235
|
+
name: "Title & Speaker Cover",
|
|
4236
4236
|
category: "cover",
|
|
4237
|
-
description: "
|
|
4237
|
+
description: "High-impact opening slide with large title, subtitle, and speaker credentials.",
|
|
4238
4238
|
layout: {
|
|
4239
4239
|
boxes: [
|
|
4240
4240
|
{
|
|
@@ -4279,22 +4279,22 @@ var SLIDE_LAYOUT_PRESETS = [
|
|
|
4279
4279
|
textAlign: center
|
|
4280
4280
|
-->
|
|
4281
4281
|
|
|
4282
|
-
# \u{1F680}
|
|
4283
|
-
###
|
|
4282
|
+
# \u{1F680} Engineering Scalable Cloud Systems
|
|
4283
|
+
### Principles, Bottlenecks, and Real-World Architecture Patterns
|
|
4284
4284
|
|
|
4285
|
-
**
|
|
4285
|
+
**Presenter:** Senior Systems Architect | **Duration:** 45 mins | **Level:** Intermediate
|
|
4286
4286
|
|
|
4287
4287
|
<!--
|
|
4288
4288
|
Presenter Notes:
|
|
4289
|
-
-
|
|
4290
|
-
-
|
|
4289
|
+
- Welcome the audience and outline today's primary engineering goals.
|
|
4290
|
+
- Spark curiosity with an opening hook about scaling under high concurrency.
|
|
4291
4291
|
-->`
|
|
4292
4292
|
},
|
|
4293
4293
|
{
|
|
4294
4294
|
id: "two-column-split",
|
|
4295
|
-
name: "
|
|
4295
|
+
name: "Two-Column Comparison",
|
|
4296
4296
|
category: "split",
|
|
4297
|
-
description: "
|
|
4297
|
+
description: "Balanced side-by-side comparison for legacy vs modern patterns or pros vs cons.",
|
|
4298
4298
|
layout: {
|
|
4299
4299
|
boxes: [
|
|
4300
4300
|
{
|
|
@@ -4329,38 +4329,38 @@ Presenter Notes:
|
|
|
4329
4329
|
pos: [670, 150, 530, 510]
|
|
4330
4330
|
-->
|
|
4331
4331
|
|
|
4332
|
-
## \u2696\uFE0F
|
|
4332
|
+
## \u2696\uFE0F Monolithic Polling vs Event-Driven Architecture
|
|
4333
4333
|
|
|
4334
4334
|
<div class="columns-2">
|
|
4335
4335
|
<div>
|
|
4336
4336
|
|
|
4337
|
-
### \u{1F534}
|
|
4338
|
-
-
|
|
4339
|
-
-
|
|
4340
|
-
-
|
|
4337
|
+
### \u{1F534} Legacy Polling
|
|
4338
|
+
- Heavy database CPU overhead on idle cycles
|
|
4339
|
+
- High network latency between updates
|
|
4340
|
+
- Prone to cascading timeouts during spikes
|
|
4341
4341
|
|
|
4342
4342
|
</div>
|
|
4343
4343
|
<div>
|
|
4344
4344
|
|
|
4345
|
-
### \u{1F7E2}
|
|
4346
|
-
-
|
|
4347
|
-
-
|
|
4348
|
-
-
|
|
4345
|
+
### \u{1F7E2} Event-Driven Streams
|
|
4346
|
+
- Real-time event propagation via webhooks
|
|
4347
|
+
- Zero idle compute waste with serverless consumers
|
|
4348
|
+
- Automatic backpressure and queue isolation
|
|
4349
4349
|
|
|
4350
4350
|
</div>
|
|
4351
4351
|
</div>
|
|
4352
4352
|
|
|
4353
4353
|
<!--
|
|
4354
4354
|
Presenter Notes:
|
|
4355
|
-
-
|
|
4356
|
-
-
|
|
4355
|
+
- Emphasize the core failure mode of periodic polling under sudden load spikes.
|
|
4356
|
+
- Ask the room if anyone has experienced database lockups caused by polling loops.
|
|
4357
4357
|
-->`
|
|
4358
4358
|
},
|
|
4359
4359
|
{
|
|
4360
4360
|
id: "code-explainer",
|
|
4361
|
-
name: "
|
|
4361
|
+
name: "Code Walkthrough & Analysis",
|
|
4362
4362
|
category: "code",
|
|
4363
|
-
description: "
|
|
4363
|
+
description: "Syntax-highlighted code block on the left with step-by-step key annotations on the right.",
|
|
4364
4364
|
layout: {
|
|
4365
4365
|
boxes: [
|
|
4366
4366
|
{
|
|
@@ -4395,16 +4395,16 @@ Presenter Notes:
|
|
|
4395
4395
|
pos: [740, 135, 460, 535]
|
|
4396
4396
|
-->
|
|
4397
4397
|
|
|
4398
|
-
## \u{1F4BB}
|
|
4398
|
+
## \u{1F4BB} Robust Async Transaction Pipeline
|
|
4399
4399
|
|
|
4400
4400
|
<div class="columns-2">
|
|
4401
4401
|
<div>
|
|
4402
4402
|
|
|
4403
4403
|
\`\`\`ts
|
|
4404
|
-
//
|
|
4404
|
+
// Process payment with idempotency guarantee
|
|
4405
4405
|
export async function processPayment(order: Order) {
|
|
4406
4406
|
const isValid = await validateOrder(order);
|
|
4407
|
-
if (!isValid) throw new Error("
|
|
4407
|
+
if (!isValid) throw new Error("ValidationFailed");
|
|
4408
4408
|
|
|
4409
4409
|
const receipt = await chargeCard(order);
|
|
4410
4410
|
return sendConfirmation(receipt);
|
|
@@ -4414,25 +4414,26 @@ export async function processPayment(order: Order) {
|
|
|
4414
4414
|
</div>
|
|
4415
4415
|
<div>
|
|
4416
4416
|
|
|
4417
|
-
### \u{1F50D}
|
|
4418
|
-
1. **
|
|
4419
|
-
2. **
|
|
4420
|
-
3. **
|
|
4417
|
+
### \u{1F50D} Key Engineering Invariants:
|
|
4418
|
+
1. **Early Guard Clause:** Validates payload immediately at line 3 before triggering external calls.
|
|
4419
|
+
2. **Deterministic Sequence:** Enforces strict order of operations using native \`await\`.
|
|
4420
|
+
3. **Audit Trail:** Returns immutable payment receipt upon successful execution.
|
|
4421
4421
|
|
|
4422
4422
|
</div>
|
|
4423
4423
|
</div>
|
|
4424
4424
|
|
|
4425
4425
|
<!--
|
|
4426
4426
|
Presenter Notes:
|
|
4427
|
-
-
|
|
4428
|
-
-
|
|
4427
|
+
- Walk through lines 1 to 7 sequentially.
|
|
4428
|
+
- Cold-call check: "What happens if line 6 throws a network timeout?"
|
|
4429
|
+
- Cognitive scaffolding: Highlight the importance of idempotency keys in payment APIs.
|
|
4429
4430
|
-->`
|
|
4430
4431
|
},
|
|
4431
4432
|
{
|
|
4432
4433
|
id: "metrics-3-card",
|
|
4433
|
-
name: "
|
|
4434
|
+
name: "3-Metric Key Results Grid",
|
|
4434
4435
|
category: "metrics",
|
|
4435
|
-
description: "
|
|
4436
|
+
description: "Three high-visibility KPI stat cards for benchmarks, impact, and success criteria.",
|
|
4436
4437
|
layout: {
|
|
4437
4438
|
boxes: [
|
|
4438
4439
|
{
|
|
@@ -4477,43 +4478,43 @@ Presenter Notes:
|
|
|
4477
4478
|
pos: [860, 165, 340, 485]
|
|
4478
4479
|
-->
|
|
4479
4480
|
|
|
4480
|
-
## \u{1F4CA}
|
|
4481
|
+
## \u{1F4CA} Performance & Reliability Benchmarks
|
|
4481
4482
|
|
|
4482
4483
|
<div class="columns-3">
|
|
4483
4484
|
<div>
|
|
4484
4485
|
|
|
4485
|
-
# \u26A1 99.
|
|
4486
|
-
###
|
|
4487
|
-
|
|
4486
|
+
# \u26A1 99.99%
|
|
4487
|
+
### SLA Availability
|
|
4488
|
+
High-availability multi-region cluster with automated failover routing.
|
|
4488
4489
|
|
|
4489
4490
|
</div>
|
|
4490
4491
|
<div>
|
|
4491
4492
|
|
|
4492
|
-
# \u{1F680}
|
|
4493
|
-
###
|
|
4494
|
-
|
|
4493
|
+
# \u{1F680} 15ms
|
|
4494
|
+
### P99 Latency
|
|
4495
|
+
Sub-20ms roundtrip response time via distributed edge caching.
|
|
4495
4496
|
|
|
4496
4497
|
</div>
|
|
4497
4498
|
<div>
|
|
4498
4499
|
|
|
4499
|
-
# \u{1F6E1}\uFE0F
|
|
4500
|
-
###
|
|
4501
|
-
|
|
4500
|
+
# \u{1F6E1}\uFE0F Zero
|
|
4501
|
+
### Unhandled Breaches
|
|
4502
|
+
Full SOC2 Type II compliance and end-to-end payload encryption.
|
|
4502
4503
|
|
|
4503
4504
|
</div>
|
|
4504
4505
|
</div>
|
|
4505
4506
|
|
|
4506
4507
|
<!--
|
|
4507
4508
|
Presenter Notes:
|
|
4508
|
-
-
|
|
4509
|
-
-
|
|
4509
|
+
- Highlight the 15ms P99 latency target as the primary technical milestone.
|
|
4510
|
+
- Connect these metrics directly to the architecture decisions discussed next.
|
|
4510
4511
|
-->`
|
|
4511
4512
|
},
|
|
4512
4513
|
{
|
|
4513
4514
|
id: "process-flow",
|
|
4514
|
-
name: "
|
|
4515
|
+
name: "Architecture & Process Flow",
|
|
4515
4516
|
category: "diagram",
|
|
4516
|
-
description: "
|
|
4517
|
+
description: "Multi-stage workflow with responsive Mermaid diagram and phase summaries.",
|
|
4517
4518
|
layout: {
|
|
4518
4519
|
boxes: [
|
|
4519
4520
|
{
|
|
@@ -4548,33 +4549,33 @@ Presenter Notes:
|
|
|
4548
4549
|
pos: [80, 465, 1120, 205]
|
|
4549
4550
|
-->
|
|
4550
4551
|
|
|
4551
|
-
## \u{1F504}
|
|
4552
|
+
## \u{1F504} End-to-End Data Ingestion Pipeline
|
|
4552
4553
|
|
|
4553
4554
|
\`\`\`mermaid
|
|
4554
4555
|
graph LR
|
|
4555
|
-
A[1. Client
|
|
4556
|
-
B --> C[3. Auth
|
|
4557
|
-
C --> D[4.
|
|
4556
|
+
A[1. Client Ingress] --> B[2. API Gateway]
|
|
4557
|
+
B --> C[3. Auth Verifier]
|
|
4558
|
+
C --> D[4. Distributed DB]
|
|
4558
4559
|
style A fill:#0284c7,stroke:#38bdf8,stroke-width:2px,color:#fff
|
|
4559
4560
|
style B fill:#1e293b,stroke:#64748b,stroke-width:2px,color:#fff
|
|
4560
4561
|
style C fill:#059669,stroke:#34d399,stroke-width:2px,color:#fff
|
|
4561
4562
|
style D fill:#7c3aed,stroke:#a78bfa,stroke-width:2px,color:#fff
|
|
4562
4563
|
\`\`\`
|
|
4563
4564
|
|
|
4564
|
-
- **
|
|
4565
|
-
- **
|
|
4565
|
+
- **Ingress & Gateway:** Rate-limits traffic and applies reverse-proxy load balancing.
|
|
4566
|
+
- **Verification & Storage:** Decodes cryptographic JWT tokens before transactional write commit.
|
|
4566
4567
|
|
|
4567
4568
|
<!--
|
|
4568
4569
|
Presenter Notes:
|
|
4569
|
-
-
|
|
4570
|
-
-
|
|
4570
|
+
- Trace each hop across the diagram from left to right.
|
|
4571
|
+
- Ask: "Where should rate limiting be applied to prevent DDoS attacks?"
|
|
4571
4572
|
-->`
|
|
4572
4573
|
},
|
|
4573
4574
|
{
|
|
4574
4575
|
id: "quote-highlight",
|
|
4575
|
-
name: "
|
|
4576
|
+
name: "Core Principle & Quote Highlight",
|
|
4576
4577
|
category: "quote",
|
|
4577
|
-
description: "
|
|
4578
|
+
description: "Prominent quote callout for fundamental engineering rules or memorable mantras.",
|
|
4578
4579
|
layout: {
|
|
4579
4580
|
boxes: [
|
|
4580
4581
|
{
|
|
@@ -4605,23 +4606,23 @@ Presenter Notes:
|
|
|
4605
4606
|
fontSize: 1.4rem
|
|
4606
4607
|
-->
|
|
4607
4608
|
|
|
4608
|
-
## \u{1F4A1}
|
|
4609
|
+
## \u{1F4A1} Foundational Architecture Principle
|
|
4609
4610
|
|
|
4610
|
-
> "
|
|
4611
|
+
> "Simplicity is prerequisite for reliability. A well-engineered distributed system is one where a new engineer can understand the request flow within their first hour."
|
|
4611
4612
|
>
|
|
4612
4613
|
> \u2014 **Edsger W. Dijkstra**
|
|
4613
4614
|
|
|
4614
4615
|
<!--
|
|
4615
4616
|
Presenter Notes:
|
|
4616
|
-
-
|
|
4617
|
-
-
|
|
4617
|
+
- Pause for 5 seconds of silence to let the quote sink in.
|
|
4618
|
+
- Ask: "How do our current architectural choices reflect this principle?"
|
|
4618
4619
|
-->`
|
|
4619
4620
|
},
|
|
4620
4621
|
{
|
|
4621
4622
|
id: "quiz-checkpoint",
|
|
4622
|
-
name: "
|
|
4623
|
+
name: "Interactive Formative Checkpoint",
|
|
4623
4624
|
category: "assessment",
|
|
4624
|
-
description: "
|
|
4625
|
+
description: "Interactive multiple-choice diagnostic checkpoint with A/B/C/D voting options.",
|
|
4625
4626
|
layout: {
|
|
4626
4627
|
boxes: [
|
|
4627
4628
|
{
|
|
@@ -4660,27 +4661,27 @@ Presenter Notes:
|
|
|
4660
4661
|
fontSize: 1.15rem
|
|
4661
4662
|
-->
|
|
4662
4663
|
|
|
4663
|
-
## \u{1F3AF}
|
|
4664
|
+
## \u{1F3AF} Formative Checkpoint: Verify Your Understanding
|
|
4664
4665
|
|
|
4665
|
-
> **
|
|
4666
|
+
> **Question:** In an event-driven architecture, which pattern guarantees that messages are never permanently lost if a downstream consumer crashes?
|
|
4666
4667
|
|
|
4667
|
-
- **A.**
|
|
4668
|
-
- **B.**
|
|
4669
|
-
- **C.**
|
|
4670
|
-
- **D.**
|
|
4668
|
+
- **A.** Direct synchronous HTTP request with short 2-second timeout
|
|
4669
|
+
- **B.** Persistent Message Broker with Dead-Letter Queue (DLQ) & retry policy
|
|
4670
|
+
- **C.** In-memory client RAM cache without persistence
|
|
4671
|
+
- **D.** Discarding failed packets and prompting the user to re-submit
|
|
4671
4672
|
|
|
4672
4673
|
<!--
|
|
4673
4674
|
Presenter Notes:
|
|
4674
|
-
-
|
|
4675
|
-
-
|
|
4676
|
-
-
|
|
4675
|
+
- Give students 30 seconds to vote on option A, B, C, or D.
|
|
4676
|
+
- Correct answer: B.
|
|
4677
|
+
- Explain why options A and C introduce catastrophic data loss in production.
|
|
4677
4678
|
-->`
|
|
4678
4679
|
},
|
|
4679
4680
|
{
|
|
4680
4681
|
id: "tiered-practice-3cards",
|
|
4681
|
-
name: "
|
|
4682
|
+
name: "Tiered Differentiation (Bronze / Silver / Gold)",
|
|
4682
4683
|
category: "content",
|
|
4683
|
-
description: "
|
|
4684
|
+
description: "Three progressive competency tiers allowing self-paced learning acceleration.",
|
|
4684
4685
|
layout: {
|
|
4685
4686
|
boxes: [
|
|
4686
4687
|
{
|
|
@@ -4723,46 +4724,46 @@ Presenter Notes:
|
|
|
4723
4724
|
pos: [850, 140, 350, 520]
|
|
4724
4725
|
-->
|
|
4725
4726
|
|
|
4726
|
-
## \u{1F6E0}\uFE0F
|
|
4727
|
+
## \u{1F6E0}\uFE0F Hands-On Challenge: 3-Tier Differentiation
|
|
4727
4728
|
|
|
4728
4729
|
<div class="columns-3">
|
|
4729
4730
|
<div>
|
|
4730
4731
|
|
|
4731
|
-
### \u{1F949}
|
|
4732
|
-
-
|
|
4733
|
-
-
|
|
4734
|
-
- *
|
|
4732
|
+
### \u{1F949} Bronze Tier
|
|
4733
|
+
- Implement baseline function
|
|
4734
|
+
- Pass 3 baseline unit tests
|
|
4735
|
+
- *Goal: Foundational mastery*
|
|
4735
4736
|
|
|
4736
4737
|
</div>
|
|
4737
4738
|
<div>
|
|
4738
4739
|
|
|
4739
|
-
### \u{1F948}
|
|
4740
|
-
-
|
|
4741
|
-
-
|
|
4742
|
-
- *
|
|
4740
|
+
### \u{1F948} Silver Tier
|
|
4741
|
+
- Add boundary error handling
|
|
4742
|
+
- Enforce O(N) memory complexity
|
|
4743
|
+
- *Goal: Production-ready code*
|
|
4743
4744
|
|
|
4744
4745
|
</div>
|
|
4745
4746
|
<div>
|
|
4746
4747
|
|
|
4747
|
-
### \u{1F947}
|
|
4748
|
-
-
|
|
4749
|
-
-
|
|
4750
|
-
- *
|
|
4748
|
+
### \u{1F947} Gold Tier
|
|
4749
|
+
- Design distributed retry queue
|
|
4750
|
+
- Add 95% automated test coverage
|
|
4751
|
+
- *Goal: Architectural leadership*
|
|
4751
4752
|
|
|
4752
4753
|
</div>
|
|
4753
4754
|
</div>
|
|
4754
4755
|
|
|
4755
4756
|
<!--
|
|
4756
4757
|
Presenter Notes:
|
|
4757
|
-
-
|
|
4758
|
-
-
|
|
4758
|
+
- All learners begin at Bronze to establish baseline competency.
|
|
4759
|
+
- Accelerate self-directed learners to Silver and Gold as they complete each tier.
|
|
4759
4760
|
-->`
|
|
4760
4761
|
},
|
|
4761
4762
|
{
|
|
4762
4763
|
id: "agenda-timeline",
|
|
4763
|
-
name: "
|
|
4764
|
+
name: "Session Agenda & Milestones",
|
|
4764
4765
|
category: "content",
|
|
4765
|
-
description: "
|
|
4766
|
+
description: "Structured time-budgeted agenda mapping stages to measurable deliverables.",
|
|
4766
4767
|
layout: {
|
|
4767
4768
|
boxes: [
|
|
4768
4769
|
{
|
|
@@ -4789,25 +4790,25 @@ Presenter Notes:
|
|
|
4789
4790
|
pos: [80, 140, 1120, 520]
|
|
4790
4791
|
-->
|
|
4791
4792
|
|
|
4792
|
-
## \u{1F5FA}\uFE0F
|
|
4793
|
+
## \u{1F5FA}\uFE0F Milestone Roadmap & Time Budget
|
|
4793
4794
|
|
|
4794
|
-
|
|
|
4795
|
+
| Allocated Time | Session Stage | Core Learning Focus | Deliverable Milestone |
|
|
4795
4796
|
|:---:|---|---|---|
|
|
4796
|
-
| **05
|
|
4797
|
-
| **15
|
|
4798
|
-
| **20
|
|
4799
|
-
| **05
|
|
4797
|
+
| **05 mins** | Warm-Up | Real-World Scenario & Context | Identify system bottleneck |
|
|
4798
|
+
| **15 mins** | Concept Discovery | Core Architectural Patterns | Deconstruct message queue models |
|
|
4799
|
+
| **20 mins** | Hands-On Lab | Tiered Code Implementation | Complete Bronze + Silver tasks |
|
|
4800
|
+
| **05 mins** | Wrap-Up | Formative Checkpoint & Debrief | Consolidate key principles |
|
|
4800
4801
|
|
|
4801
4802
|
<!--
|
|
4802
4803
|
Presenter Notes:
|
|
4803
|
-
-
|
|
4804
|
+
- Walk through the time budget so students understand expectations and pacing.
|
|
4804
4805
|
-->`
|
|
4805
4806
|
},
|
|
4806
4807
|
{
|
|
4807
4808
|
id: "takeaways-summary",
|
|
4808
|
-
name: "
|
|
4809
|
+
name: "Key Takeaways & Wrap-up",
|
|
4809
4810
|
category: "content",
|
|
4810
|
-
description: "
|
|
4811
|
+
description: "Three memorable synthesis takeaways with actionable next steps.",
|
|
4811
4812
|
layout: {
|
|
4812
4813
|
boxes: [
|
|
4813
4814
|
{
|
|
@@ -4846,18 +4847,18 @@ Presenter Notes:
|
|
|
4846
4847
|
fontSize: 1.1rem
|
|
4847
4848
|
-->
|
|
4848
4849
|
|
|
4849
|
-
## \u{1F3C1}
|
|
4850
|
+
## \u{1F3C1} Key Takeaways & Action Items
|
|
4850
4851
|
|
|
4851
|
-
1. **
|
|
4852
|
-
2. **
|
|
4853
|
-
3. **
|
|
4852
|
+
1. **Decouple Before Scaling:** Separate producer rate from consumer processing capacity.
|
|
4853
|
+
2. **Design for Failure:** Always configure retries, backoff intervals, and dead-letter queues.
|
|
4854
|
+
3. **Measure End-to-End:** Track P99 latency and error rates across all distributed boundaries.
|
|
4854
4855
|
|
|
4855
|
-
> \u{1F4DD} **
|
|
4856
|
+
> \u{1F4DD} **Next Action Item:** Complete the Silver Tier refactoring challenge before our next peer-review session.
|
|
4856
4857
|
|
|
4857
4858
|
<!--
|
|
4858
4859
|
Presenter Notes:
|
|
4859
|
-
-
|
|
4860
|
-
-
|
|
4860
|
+
- Deliver a crisp 2-minute wrap-up reinforcing the 3 core takeaways.
|
|
4861
|
+
- Acknowledge strong peer collaboration during the hands-on lab.
|
|
4861
4862
|
-->`
|
|
4862
4863
|
}
|
|
4863
4864
|
];
|