Chapter 5. Building a Cloud Native Service

Life was simple before World War II. After that, we had systems.1

Grace Hopper, OCLC Newsletter (1987)

In this chapter, our real work finally begins.

We’ll weave together many of the materials discussed throughout Part II to create a service that’ll serve as the jumping-off point for the remainder of the book. As we go forward, we’ll iterate on what we begin here, adding layers of functionality with each chapter until, at the conclusion, we have ourselves a true cloud native application.

Naturally, it won’t be “production ready”—it’ll be missing some important security features, for example—but it’ll still provide a solid foundation to build upon.

But what do we build?

Let’s Build a Service!

Okay. So. We need something to build.

It should be conceptually simple, straightforward enough to implement in its most basic form but nontrivial and amenable to scaling and distributing. Something that we can iteratively refine over the remainder of the book. I put a lot of thought into this, considering different ideas for what our application would be, but in the end the answer was obvious.

We’ll build ourselves a distributed key-value store.

What’s a Key-Value Store?

A key-value store is a kind of nonrelational database that stores data as a collection of key-value pairs. They’re very different from the better-known relational databases, like Microsoft SQL Server or PostgreSQL, that we know and love.2 Where relational databases structure their ...

Get Cloud Native Go, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.