Distributed Services with Go

The protobuf compiler supports extensions that can compile your protobuf into code using your own compilation logic. For example, you might want several structs to have a common method. With protobuf, you can write a plugin to generate that method automatically.

I will consistently use the following terms to mean these things:

  • Record—the data stored in our log.
  • Store—the file we store records in.
  • Index—the file we store index entries in.
  • Segment—the abstraction that ties a store and an index together.
  • Log—the abstraction that ties all the segments together.