Book Image

Microservices with Go

By : Alexander Shuiskov
Book Image

Microservices with Go

By: Alexander Shuiskov

Overview of this book

This book covers the key benefits and common issues of microservices, helping you understand the problems microservice architecture helps to solve, the issues it usually introduces, and the ways to tackle them. You’ll start by learning about the importance of using the right principles and standards in order to achieve the key benefits of microservice architecture. The following chapters will explain why the Go programming language is one of the most popular languages for microservice development and lay down the foundations for the next chapters of the book. You’ll explore the foundational aspects of Go microservice development including service scaffolding, service discovery, data serialization, synchronous and asynchronous communication, deployment, and testing. After covering the development aspects, you’ll progress to maintenance and reliability topics. The last part focuses on more advanced topics of Go microservice development including system reliability, observability, maintainability, and scalability. In this part, you’ll dive into the best practices and examples which illustrate how to apply the key ideas to existing applications, using the services scaffolded in the previous part as examples. By the end of this book, you’ll have gained hands-on experience with everything you need to develop scalable, reliable and performant microservices using Go.
Table of Contents (19 chapters)
1
Part 1: Introduction
3
Part 2: Foundation
12
Part 3: Maintenance

Introduction to databases

Databases are systems that allow us to store and retrieve different types of data. Databases offer a variety of guarantees related to data storage, such as durability – a guarantee that all records and any related data changes will be persistent over time. A durability guarantee helps ensure that the data stored in a database won’t be lost in case of various events such as software and hardware restarts, which are pretty common for microservices

Databases help solve lots of different other problems related to data storage. Let’s illustrate one such problem using the metadata service that we created in Chapter 2. In our metadata service code, we implemented an in-memory repository for storing and retrieving the movie data that provides two functions, Get and Put. If we have just one instance of the metadata service, all its callers would be able to successfully write and read metadata records from the service memory, so long as a service...