1. Introduction
2.1 Minimal HTTP Serer
2.2 Understanding the Serice Stack
2.3.1 Path Extraction
2.3.2 Query Extraction
2.3.3 Header Extraction & 2.3.4 More Extractors
2.4 Add a Simple Tower Layer State
2.5 Add a Simple Tower Layer (Mutable State)
2.6 Multiple States
2.7 Quick Recap on State and Layers
2.8 Nesting Multiple Routers
2.9 Nested Routers with State
2.10 Calling Other Serices
2.11 Returning Status Codes
2.12 Using IntoResponse and 2.13 Error Handling with IntoResponse
2.14 Quick Recap on Nesting, Making Calls and Responses
2.15 Sering Static Content with Tower
2.16 Simple Header-Based Authentication
2.17 Simple Header-Based Auth with Middleware
2.18 Middleware Auth with Injection
2.19 Selectiely Applying Layers
2.20 Router Layers
2.21 Layer Recap
3.1 Minimal Example
3.2 Logging AxumTower
3.3 Timing Spans
3.4 Axum Spans
3.5 Logging to a File
3.6 Structured Logging to JSON
3.7 OpenTelemetry & 3.7.1 Hello Telemetry
4.0 OpenAPI Documentation
5.1 Enironment Variables with .en
5.2 The Config Crate
5.3 Loading Config ia HTTP
5.4 CLI configuration with Clap
6.1 Hello Tonic
6.2 Hello Tonic - Project Definition and Build
6.3 Hello Tonic - The Serer
6.4 Hello Tonic - The Client
6.5 gRPC Streaming and 6.6 Protocol Definition
6.7 gRPC Streaming - The Serer
6.8 gRPC Streaming - The Client
6.9 Recap So Far
6.10 Authentication
6.11 Tracing
6.12 When to use gRPC
7.1 Minimal Echo Serer
7.2 A natie WS client
7.3 JSON
8.0 Serice Deployment
8.1 Build a Test Serice & 8.2 Natie Host Deployment
8.3 Docker Deployment
9.0 Serice Design
9.1 Understanding Your Company Architecture
9.2 Designing Indiidual Serices (9.2.1, 9.2.2, 9.2.3, 9.2.4, 9.2.5)
9.3 Combining Serices into a Modular Monolith
9.4 Serice Exposure
9.5 Scaling Out
10.0 Wrap Up