Explore the dynamic world of microservice architecture with Go in this comprehensive course. This second part of the series delves into using MySQL, Cassandra, and Elasticsearch as persistence layers, while guiding you through the creation of three diverse microservices employing cutting-edge design patterns: MVC, advanced MVC, and Domain Driven Development with a focus on Hexagonal architecture.
Course Overview
By the conclusion of this course, you'll have mastered:
Effective structuring of application packages and code organization.
Application of MVC pattern, Domain Driven Development, and Hexagonal Architecture.
Configuration of MySQL client in Go with the DAO pattern implementation.
Integration of CassandraDB client in Go applications.
Utilizing and configuring Elasticsearch within Go projects.
Comprehensive testing and mocking of database integrations.
Stress testing microservices using goroutines.
Understanding and managing dependencies with Go modules.
Building, publishing, and sharing custom Go libraries.
Implementing effective application design patterns.
Setting up a robust distributed logging system.
Practicing real-life examples and exercises to cement learning.
Course Prerequisites
Requirements:
- Completion of the Golang tour available on the Golang website.
- Beneficial to have completed Part 1 of this course series.
Target Audience
Who this course is for:
- Software engineers.
- Software developers.
- Technical leaders.
- Architects looking to specialize in microservices with Go.
- Anyone eager to enhance their skills in microservices using Go.
Key Learning Objectives
What you'll learn:
- Strategies for structuring and organizing microservices.
- In-depth understanding of Domain Driven Development.
- Practical application of the Hexagonal architecture.
- How to integrate and configure MySQL within microservices.
- Best practices for integrating Cassandra DB.
- Methods for Elasticsearch integration and configuration.
- Logging methods for standard output and log files.
- Implementing the DAO pattern effectively.
- Processes for building, publishing, and utilizing custom Go libraries.
- Testing techniques across all application layers.
- Dependency management in Go projects.