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

Design Patterns in Go

Design Patterns in Go

Sources: udemy
This course provides an overview of all the Gang of Four (GoF) design patterns as outlined in their seminal book, together with modern-day variations, adjustments, discussions o...
9 hours 47 minutes 37 seconds
Golang (Google go)

Golang (Google go)

Sources: udemy
Go is an amazing programming language that was created by the same guys who gave the world C (C), unix and utf-8 - some of the most influential contributions to the world of com...
17 hours 57 minutes 50 seconds
Backend Engineering with Go

Backend Engineering with Go

Sources: udemy
In this practice-oriented course, we will build a full-fledged REST API in Go from scratch and deploy it in the cloud, ready for real traffic and scaling...
17 hours 6 minutes 22 seconds
Go Programming (Golang): The Complete Developer's Guide

Go Programming (Golang): The Complete Developer's Guide

Sources: zerotomastery.io
Learn Golang from scratch, from an industry expert. Build real-world apps. You'll learn the fundamentals all the way to advanced concurrency so that you go from
13 hours 10 minutes 35 seconds
Practical Go Foundations

Practical Go Foundations

Sources: ardanlabs.com
This introductory course explores topics like strings, REST APIs, error handling, testing, sorting, and more! Perfect for engineers just starting their journey into Go. This cou...
13 hours 9 minutes 53 seconds