for Events and Handling Concurrency Issues\
1:59 Reserving a Ticket
5:41 Setup for Testing Reservation
12:41 Test Implementation
17:10 Missing Update Event
23:25 Private vs Protected Properties
30:19 Publishing While Listening
37:02 Mock Function Arguments
46:51 Order Cancelled Listener
53:43 A Lightning-Quick Test
1:01:12 Don’t Forget to Listen!
1:03:33 Rejecting Edits of Reserved Tickets
Services\
1:09:49 The Expiration Service
1:12:28 Expiration Options
1:20:23 Initial Setup
1:26:38 A Touch of Kubernetes Setup
1:34:22 File Sync Setup
1:36:54 Listener Creation
1:40:36 What’s Bull All About
1:44:33 Creating a Queue
1:53:41 Queueing a Job on Event Arrival
1:58:51 Testing Job Processing
2:02:08 Delaying Job Processing
2:07:32 Defining the Expiration Complete Event
2:11:23 Publishing an Event on Job Processing
2:17:50 Handling an Expiration Event
2:23:51 Emitting the Order Cancelled Event
2:29:28 Testing the Expiration Complete Listener
2:35:20 A Touch More Testing
2:42:41 Listening for Expiration
Payments\
2:45:02 The Payments Service
2:47:13 Initial Setup
2:55:59 Replicated Fields
3:01:57 Another Order Model!
3:09:27 Update-If-Current
3:10:45 Replicating Orders
3:14:52 Testing Order Creation
3:21:05 Marking an Order as Cancelled
3:26:45 Cancelled Testing
3:33:27 Starting the Listeners
3:37:22 Payments Flow with Stripe
3:42:33 Implementing the Create Charge Handler
3:51:05 Validating Order Payment
3:55:09 Testing Order Validation Before Payment
4:02:08 Testing Same-User Validation
4:07:18 Stripe Setup
4:11:17 Creating a Stripe Secret
4:14:37 Creating a Charge with Stripe
4:20:46 Manual Testing of Payments
4:27:22 Automated Payment Testing
4:33:49 Mocked Stripe Client
4:38:12 A More Realistic Test Setup
4:47:29 Realistic Test Implementation
4:53:44 Tying an Order and Charge Together
5:01:03 Testing Payment Creation
5:07:17 Publishing a Payment Created Event
5:13:48 More on Publishing
5:17:07 Marking an Order as Complete
5:23:25 Don’t Cancel Completed Orders!
to the Client\
5:24:27 A Few More Pages
5:30:43 Reminder on Data Fetching with Next
5:36:53 Two Quick Fixes
5:42:36 Scaffolding a Form
5:46:20 Sanitizing Price Input
5:52:49 Ticket Creation
5:59:34 Listing All Tickets
6:07:16 Linking to Wildcard Routes
6:14:23 Creating an Order
6:21:48 Programmatic Navigation to Wildcard Routes
6:26:05 The Expiration Timer
6:36:59 Displaying the Expiration
6:38:01 Showing a Stripe Payment Form
6:41:08 Configuring Stripe
6:45:31 Test Credit Card Numbers
6:47:29 Paying for an Order
6:56:54 Filtering Reserved Tickets
6:59:21 Header Links
7:01:09 Rendering a List of Orders
\
7:07:30 Development Workflow
7:11:09 Git Repository Approaches
7:17:14 Creating a GitHub Action
7:24:26 Adding a CI Test Script
7:27:08 Running Tests on PR Creation
7:31:57 Output of Failing Tests
7:37:46 Running Tests in Parallel
7:45:14 Verifying a Test Run
7:48:15 Selective Test Execution
7:54:00 Deployment Options
8:01:41 Creating a Hosted Cluster
8:04:20 Reminder on Kubernetes Context
8:07:53 Reminder on Swapping Contexts
8:11:50 The Deployment Plan
8:15:54 Building an Image in an Action
8:24:34 Testing the Image Build
8:27:05 Restarting the Deployment
8:34:23 Applying Kubernetes Manifests
8:37:51 Prod vs Dev Manifest Files
8:42:15 Manual Secret Creation
8:45:55 Don’t Forget Ingress-Nginx!
8:51:26 Testing Automated Deployment
8:54:18 Additional Deploy Files
9:01:31 A Successful Deploy!
9:07:38 Buying a Domain Name
9:10:48 Configuring the Domain Name
9:16:16 I Really Hope This Works
9:18:14 Next Steps
24.[Appendix A] - Basics of Docker\
9:22:51 Why Use Docker
9:26:35 What is Docker
9:29:28 Docker for Mac Windows
9:31:26 Installing Docker on macOS
9:36:11 Installing Docker for Windows Professional
9:38:15 More Windows Professional Setup
9:38:55 One Last Piece of Windows Professional Setup
9:40:05 Using the Docker Client
9:45:08 But Really... What’s a Container
9:53:38 How’s Docker Running on Your Computer
9:56:23 Docker Run in Detail
9:58:17 Overriding Default Commands
10:03:29 Listing Running Containers
10:07:39 Container Lifecycle
10:12:55 Restarting Stopped Containers
10:16:39 Removing Stopped Containers
10:18:18 Retrieving Output Logs
10:20:52 Stopping Containers
10:26:13 Multi-Command Containers
10:30:29 Executing Commands in Running Containers
10:33:23 The Purpose of the ’it’ Flag
10:37:58 Getting a Command Prompt in a Container
10:42:05 Starting with a Shell
10:44:19 Container Isolation
10:47:28 Creating Docker Images
10:50:05 Building
10:54:57 Dockerfile Teardown
10:57:38 What’s a Base Image
11:03:18 The Build Process in Detail
11:14:28 A Brief Recap
11:17:53 Rebuilds with Cache
11:24:55 Tagging
11:29:22 Manual Image Generation with Docker Commit
11:34:23 Project Outline
11:36:58 Node Server Setup
11:42:02 A Few Planned Errors
11:47:15 Base Image Issues
11:55:06 A Few Missing Files
11:58:24 Copying Build Files