How to design & develop REST microservices in Golang (Go)

20h 26m 49s
English
Paid

Course description

In this second part of the series I'm working with MySQL, Cassandra and Elasticsearch as persistence layers and we're going to create 3 different microservices using different design patterns: MVC, featured MVC and Domain Driven Development implementing the Hexagonal architecture.

Read more about the course

At the end of the course you'll learn:

  • How to structure our application's packages and code.

  • MVC pattern, Domain Driven Development and Hexagonal Architecture applied!

  • How to configure MySQL client in Go. DAO pattern implemented.

  • How to configure and use CassandraDB client in Go.

  • How to configure and use Elasticsearch in Go.

  • Testing and mocking database integrations.

  • Stress test the microservice with goroutines.

  • How dependencies work in Go. Usage of Go modules.

  • How to build, publish, use and share a custom Go library.

  • Application design patterns.

  • Preparing our distributed logging system.

  • Real life examples and exercises.

Requirements:
  • Just complete the Golang tour available at Golang's website
  • Nice to have: Part 1 of this course

Who this course is for:

  • Software engineers.
  • Software developers.
  • Technical leaders.
  • Architects.
  • Anyone who wants to get serious about microservices in Go.

What you'll learn:

  • How to structure and organize your microservice.
  • Domain Driven Development.
  • Hexagonal architecture applied.
  • MySQL integration and configuration.
  • Integrate Cassandra DB in your microservices.
  • Elasticsearch integration and configuration.
  • Logging to standard output and log files.
  • DAO pattern implementation.
  • How to build, publish and use a custom Go library.
  • Testing all the layers of your application.
  • How dependencies work in Go.

Watch Online

Join premium to watch
Go to premium
# Title Duration
1 Course goal: What we're going to build 07:35
2 A quick preview 10:15
3 Create projects in Github 13:20
4 HTTP frameworks 10:12
5 Basic application structure: MVC pattern 30:10
6 Starting from our domain 46:35
7 How to structure our domain persistence 41:08
8 Working with dates 21:05
9 Configure MySQL client in Go 29:39
10 How to insert rows 26:42
11 How to read rows 14:59
12 How to handle MySQL errors 33:31
13 How to update rows 33:39
14 How to delete rows 21:43
15 How to find rows 51:43
16 How to marshal structs 33:04
17 Services structure 25:34
18 No logging system 38:08
19 OAuth authentication 11:28
20 Domain Driven Development 18:21
21 DDD - Starting with the domain 27:58
22 DDD - Project structure 36:27
23 Introduction to Cassandra DB 10:56
24 Cassandra Go client 22:11
25 How to insert, get and update records 29:58
26 Tune our get session implementation 05:51
27 Authenticating users 11:28
28 Generating access tokens 57:12
29 Different requests for the two APIs 15:37
30 Creating a shared OAuth library 52:46
31 How dependencies work: go get & dep 17:13
32 Defining transitive dependencies 06:32
33 Creating a shared utils library 26:42
34 Application structure: MVC & gorilla/mux 47:01
35 Configure our mux router 36:25
36 Introduction to Elasticsearch 12:11
37 Adding ElasticSearch client 29:45
38 Index documents in ES 38:59
39 Moving our logger to the utils library 33:04
40 Improving our errors library 32:47
41 Vendoring all of our APIs 17:57
42 How to get documents by ID 36:14
43 Searching documents in ES 44:47
44 Homework: Add delete and update endpoints 03:53
45 Testing our application: OAuth client 28:16
46 Use Docker to ship our Items API 24:00
47 Extra class - Take a look at my online content 01:48

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Ultimate Go: Advanced Engineering

Ultimate Go: Advanced Engineering

Sources: ardanlabs.com
Learn advanced Go concepts by building a reference implementation of a blockchain in Go! The goal of this class is to share how to code complex engineering tasks required to bui...
16 hours 20 minutes 42 seconds
Getting Started With Golang

Getting Started With Golang

Sources: Academind Pro
Learn all the key fundamentals of Go - one of the most in-demand and popular programming languages you can learn these days! Go (or Golang) is a very modern, performant and popu...
15 hours 19 minutes 14 seconds
Ultimate Go: Software Design with Kubernetes 2.0

Ultimate Go: Software Design with Kubernetes 2.0

Sources: ardanlabs.com
This course will teach you how to develop advanced services in Go, using Domain Driven Design and Data Oriented Architecture approaches with deployment in...
22 hours 32 minutes 42 seconds
Ultimate Go

Ultimate Go

Sources: ardanlabs.com
Advanced course Ultimate Go developed for those, who want to concentrate on deep learning of language and to understand things that have sense and semanthic.
16 hours 8 minutes 46 seconds
Build a Google Analytics in Go

Build a Google Analytics in Go

Sources: Dominic St-Pierre
This course assumes you've taken my Build SaaS apps in Go course or are familiar with Go's standard library for building web applications.
7 hours 18 minutes 48 seconds