Skip to main content

Complete Microservices with Go

18h 31m 16s
English
Paid

Course description

In this practical project-based course, you will create a microservices system for a ride-sharing service in the style of Uber from scratch - using Go, Docker, and Kubernetes.

The course includes a mini-course on advanced Go, so you will gain a full set of knowledge even if you're just beginning to learn the language.

By the end of the training, you will have a fully deployed, horizontally scalable system for ride-sharing, ready for real-world loads. Additionally, you will obtain a reusable template for creating future distributed projects - accelerating your path to the role of a lead engineer.

The project you will build consists of several services orchestrated using Kubernetes. The application interface will allow users to select a route directly on a map and, by choosing the desired rate, book a ride from a pool of available drivers.

The goal of the course is to provide you with fundamental knowledge for creating and understanding distributed backend systems, mastering best industry practices, and developing a production-ready microservices architecture that is scalable and easy to maintain.

This is not just a step-by-step guide, but a comprehensive educational experience that prepares you for real-world challenges in the development field.

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 90 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Introduction

All Course Lessons (90)

#Lesson TitleDurationAccess
1
Introduction Demo
01:53
2
Project Overview
04:14
3
Tech Stack Overview
06:22
4
Coming from a Monolith
12:21
5
Microservices Guiding Design Principles
13:35
6
Communication Styles
15:23
7
Architecture Definition Process
11:24
8
Effective Error Handling
15:29
9
Interfaces
16:17
10
Testing
06:18
11
Pointers
12:16
12
Goroutines
10:14
13
Context and Timeouts
13:30
14
Concurrency with Channels
13:21
15
Maps
06:21
16
Map Concurrency & Mutexes
12:07
17
Windows Users Setup
12:06
18
Mac/Linux Setup
07:35
19
Structuring a Microservice project
12:11
20
Theory: Clean Architecture & Repository Pattern
09:31
21
Part 1: Layered Architecture
07:54
22
Part 2: Repository Pattern
23:23
23
Why Kubernetes and Tilt
09:31
24
Role of the API Gateway
07:24
25
Implementing an HTTP Server
25:09
26
External API communication (OSRM)
20:15
27
Preparing for External API Failures
02:57
28
Gracefull shutdown
14:44
29
Understanding WebSockets
09:10
30
Implementing WebSocket connections
22:29
31
Handling CORS
16:08
32
gRPC Introduction
08:54
33
Protocol Buffer file generation process
05:31
34
Defining the Trip Proto
15:49
35
Implementing the Gateway Trip gRPC Client
16:55
36
gRPC Server implementation on Trip Service
12:22
37
Preview Trip Handler - Part #1
12:44
38
Preview Trip Handler - Part #2
20:49
39
Why & What are Ride Fares
05:56
40
Ride Pricing Estimation
32:51
41
Implementing the TripStart gRPC handler
21:31
42
Introduction to Kubernetes
06:15
43
Kubernetes Under the Hood
14:12
44
Kubernetes Components
16:38
45
Creating Deployment Files
22:57
46
Doing our first production deployment
19:29
47
Bootstrapping the Service
16:22
48
Small Tiltfile Compilation Fix
01:21
49
Final Adjustments to the Route
03:10
50
Introduction to Async communication
12:33
51
Setting up RabbitMQ
11:48
52
Connecting to RabbitMQ
13:06
53
RabbitMQ Services Dependency
03:32
54
Publishing the First Message
21:54
55
Message Durability
08:01
56
Consuming Messages
11:34
57
Message Distribution & Acknowledgment
14:57
58
Fair Dispatch
06:12
59
The Pub/Sub Pattern
17:11
60
Implementing the Exchange & Topics flow
21:19
61
JSON Message Sending & Consuming
13:20
62
Finding a Suitable Driver
18:04
63
Understanding how to notify our users
06:40
64
WebSocket Connection Manager
08:52
65
Queue Consumer
14:11
66
Handling incoming messages from the driver
11:02
67
Listening for Trip Accept event
26:39
68
Declining a Trip Request
04:31
69
Payment Flow Overview
04:44
70
Payment Service setup
05:46
71
Adding the Stripe secret key
06:15
72
Stripe Processor Implementation
18:45
73
Listening to the Payment Event
14:57
74
Stripe Payment Webhook
20:17
75
Intro to Distributed Tracing
09:33
76
Setting up Tracing
13:54
77
Jeager Exporter
13:13
78
HTTP Instrumentation
13:57
79
gRPC Instrumentation
11:36
80
RabbitMQ Instrumentation
14:57
81
Understanding DLQ and Retries
07:30
82
Implementing Message Retries
13:04
83
Implementing DLQ and DLX
10:25
84
Introduction to MongoDB
10:25
85
MongoDB Connection
14:23
86
MongoDB Repository
07:25
87
Adding BSON to the Domain Structs
03:42
88
Dockerizing our project for production
10:19
89
Kubernetes Cluster Deployment
14:08
90
Port Forwarding
01:17

Unlock unlimited learning

Get instant access to all 89 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Go - The Complete Guide

Go - The Complete Guide

Sources: Academind Pro
Unleash Your Potential - with Go and this course! Welcome to "Go - The Complete Guide," the definitive online course meticulously designed for both newcomers and professionals e...
15 hours 23 minutes 30 seconds
The Art of Command Line Interfaces

The Art of Command Line Interfaces

Sources: ByteSizeGo, Marian Montagnino
Master the creation of high-quality CLI applications in Go. Video course by Marian, bestselling author and expert in command-line interface programming.
5 hours 51 minutes 42 seconds
gRPC [Golang] Master Class: Build Modern API & Microservices

gRPC [Golang] Master Class: Build Modern API & Microservices

Sources: udemy
gRPC is a new and modern framework for building scalable, modern and fast API. It is leveraged by many top tech companies such as Google, Square & Netflix and enables programmer...
3 hours 46 minutes 30 seconds
Redis Internals

Redis Internals

Sources: Arpit Bhayani
This is a self-paced course in which you will study the internal workings of Redis by re-implementing its key features in Golang. Together we will...
9 hours 6 minutes 41 seconds