Skip to content

huavanthong/microservice-golang

Repository files navigation

go-microservice-forum

Hello

Reference

Design with Golang

  • How to design
    • Tutorial for designing on Golang. Refer: here
    • Design Pattern with experience. Refer: here
    • Design RESTful API with microservice, perfect design. Refer: here
  • Roadmap
    • For developer with Golang. Refer: here
  • Database
    • Think about database. Refer: here

Architecture

  • Overview 110304529-c5b70180-800c-11eb-832b-a2751b5bda76
  • Project
    • Project ASP.NET example for demo microservice. Refer: here, doc, source

Microservice

Product microservice

  • Logger
    • Design logger for Golang project - product service. Refer

gRPC (g Remote Procedure Call)

gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services.

  • Purpose
    • When we need to use gRPC. Refer: here
  • gRPC
    • Communication between microservice. Refer: here
    • Traefik with gRPC. Refer: here
    • What is Traefik. Refer: here

Basket microsrevice

Developing Basket microservice which includes:

  • REST API principles, CRUD operations.
  • Redis DB NoSQL database connection and containerization
  • Mongo DB database for storing customer's basket.
  • Implement Basket microservice using the principles of Clean Architecture, which emphasizes separation of concerns and modularization for creating maintainable and scalable software.
  • Swagger Open API implementation.
  • Dockerfile implementation.

Email microservice

  • Project
    • Example project email using RabbitMQ. Refer: here
    • Document for email microserivce. Refer: here

Payment microservice

  • Project
    • Example project email using RabbitMQ. Refer: here
    • Document for email microserivce. Refer: here

User microservice

  • Project
    • Example project user-microservice. Refer: here
    • Architecture for user-microserivce. Refer: here
    • Perfect design for user-microservice, Refer: here
  • Validator
    • Implement validator using go-playground. Refer: here
    • Implement validator using go-playground through GIN framework. Refer: here
  • Authentication
    • Implement Google OAuth2 with GIN. Refer: here
    • Implement JWT for login account. Refer: here
    • Implement login/logout feature using session in gin. Refer: here
    • Implement a multi-level authentication system for goalng. here
    • Implement feature to change password. here
  • Authorization
    • Implement authorize role. Refer: here
    • Implement authorize role with GIN framework. Refer: here
    • User Management Roles and Functions. Refer: here
  • Security
    • Convert user's password in plain text to bcrypt. here
    • Avoid SQL Injection. Refer: here
  • Database.
    • MongoDB
      • Design database for user-microservice. Refer: here
    • PostgreSQL
      • Migrate database to PostgreSQL. Refer: here

Payment microservice

User microservice version 3

  • Microservice pattern
    • Circuit pattern. Refer: here

Docker

  1. Connect go-app with mongo db manually. Refer: here
  2. Build out image Docker for Go program, and knowledge for build CI/CD. Refer to private info at: here

Github Action

  1. Apply CI/CD for project. Refer: here Hello world Hello world