Skip to content

sea350/ustart_tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ustart_tutorial

Introduction to the organizational and operational structure of UStart back end architecture and git version control

Example Case

This is a small backend implementation for a car rental service. It's split up into 3 microservices: car , customer, rental record. Cars and customers need to be searchable so they will be backed by ElasticSearch. Rental record is mostly relational so it will be backed by SQL (namely postgres). All microservices will have a dedicated REST or RPC api so they can be individually scaled as necessary.

Task

Using the already completed customer microsverice and the framework defined in your .proto files in the *pb subfolders as a guideline, complete both the car and record subservices. You may choose one or both of either REST or RPC for the API's but you have to use each API at least once. That is to say if you use only REST for car, you must use at least RPC with record". Each subservice needs to beveloped in it's own git branch until completion before submitting a pull request and merging back with origin.

Dev-Environment Requirements

In order to get everything functional you must have the following installed and/or runnable:

  • golang

  • protobuf

  • protoc

  • tree

  • PostgreSQL (it is recomended to also have pgAdmin installed to make monitoring data storage easier)

  • Elasticsearch (it is recomended to also have Kibana installed to make monitoring data storage easier)

  • Postman (this is normally used to test REST API's but can be modified to test RPC, however you will not be required to test RPC although it is ecouraged)

To test if you have sucessfully installed protobuf, protoc, and tree you should be able to run gen-proto.sh to without problem. By running gen-proto.sh you generate Go files based on the framework laid out in in your .proto files.

About the Repo

DO NOT git clone this repository or any forks of this repo, always use

go get github.com/ACCOUNT/REPO

This way when both Go and your IDE will be able to easily find any local packages imports with the added benefit of also retrieving any external package dependancies.

Also note how *.pb.go and */config.json are included in the .gitignore. Pushing anything that is relevant to only a local instance like versions of a framework and configurations should be avoided. If you wish to update the go version of the framework you are working after a modification has been made to the .proto simply rerun gen-proto.sh

About

Introduction to the organizational and operational structure of UStart back end architecture

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •