Learning Targets
Part-A: Introduction and Deep-Dive
- Go programming language and its core fundamentals.
- Package ecosystem and tooling.
- First-class functions.
- Error handling
- Struct and Interface.
- Writing testable and idiomatic Go code with interface, struct and packages (architecture guidance and best practices).
- Concurrency primitives: Goroutines and Channels.
- Advanced Concurrency patterns.
- Mutexes.
- Go Modules.
- HTTP programming: From basics to building production-ready apps.
- Testing Go applications: From basics to BDD-style testing and mocking.
- Go 1.18 Generics
- Building CLI applications
Part-B: Distributed Systems and Microservices in Go
- An introduction to cloud-native distributed systems architecture patterns
- Introduction to Microservices Architecture
- Decomposition Patterns for Microservices
- Domain-Driven Design (DDD)
- A deep dive into gRPC and Protocol Buffers
- Working with CockroachDB - A distributed, fault-tolerant database
- Managing Transactions in Microservices
- A deep dive into cloud-native messaging systems: NATS and NATS JetStream
- Building Event-Driven Microservices with NATS
- Building Microservices with Event Sourcing and CQRS
- Microservices development with Go kit
- Distributed Tracing with OpenCensus and Zipkin
- Encore – Backend Development Engine