Skip to content

Neal-C/go-grpc-crud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Go Playground

Chill, this is not meant for production. it is not "prod ready"

Technical & design choices

Every design and tech decision were taken based in order of importance by: what I want to experiment/discover, what I like, what's been recommended to me by the Go community

Notes

There's better way to write this API, specified in the uncommited Personal.md file mentioned in the .gitignore

Needs the Docker fix written in Personal.md

Choices

to gain time, and give a minimum viable product, I overlooked several things:

  • database initialization
  • docker best practices
  • security (errors returned to the client, etc...)
  • proper typing
  • error and exception handling
  • clean architecture patterns
  • validating and/or escaping user input

Tech Stack

  • PostgreSQL

  • Pgx

  • Docker & Docker Compose

  • google/uuid

go get -u github.com/jackc/pgx/v5
go get -u github.com/google/uuid
go get -u github.com/stretchr/testify/require
go get -u github.com/golang-migrate/migrate/v4
  • gRPC
  • protobuf
  • google grpc
go get -u google.golang.org/grpc

Requirements

  • protoc version >=3

  • Go protocol compiler plugins

go install google.golang.org/protobuf/cmd/[email protected]
go install google.golang.org/grpc/cmd/[email protected]