- Go
- CockroachDB
In this module, we need to familiar with Distributed SQL (a kind of SQL database that design for scale, maybe base on Google Spanner or Calvin/SLOG papers). I choose CockroachDB to practice with this module.
- Admin CockroachDB (eg: setup database and user-schema...)
- Design application schema (eg: tables, indexes...)
In this module, we need to use Go to transfer SQL command into Go code. You may use some database driver or ORM libraries like GORM or pgxpool.
- Implement
crdbRepository struct
andRepository interface
- Implement
package entity
for repository to use
In this module, we need to build a client interface, in other words, we need to provide HTTP endpoints and gRPC contracts. We can use protobuf and buf.build to manage and generate code. There are many tools you can use with protobuf such as grpc-gateway or envoy-validator.
- Implement protobuf files
- Implemment HTTP endpoint
- Implement gRPC contract
- Implement protobuf validator
In this module, we need to organize our code that we wrote in previous modules.
In this module, we need to packaging our application into container and deploy on kubernetes.