Skip to content

A micro-service example written with Go using net/http

License

Notifications You must be signed in to change notification settings

okankaraduman/goFinalApp

Repository files navigation

1. Introduction

In this project I aim to build a microservice. This microservice should be extensible, scalable, cloud-native, containerized, well-tested, monitorable. Projects architecture heavily inspired by Clean Architecture blog post by Uncle Bob. Archi

I tried to use

  • Repository-Design
  • Domain-Driven-Design patterns while developing code.

I made load test using Jmeter and here the results: result - will come

Used docker to create docker image and minikube to implement kubernetes-like service in local.

2. Important links

  • Live Application - will come
  • Jmeter Test Results - will come
  • Swagger API Documentation - localhost:8080/swagger/index.html
  • Prometheus Metrics - localhost:8080/swagger/index.html

3. Third-party libraries and Architecture

3.1. Tech Stack

3.2. Architecture

Clean Architecture

To demonstrate this I'll use this tool that auto-generate architecute.

4. Usage Guide

5. Development Notes

  • I'll not use any comments unless I think the code can unexpectedly behaves. Code needs to explain itself.
  • It is assumed that default values are in yaml, and security-sensitive variables are defined in ENV.
  • I made a choice about not getting involved to front-end side.
  • The JSON decoder does not report an error if values in the source do not correspond to values in the target. For example, it's not an error if the source contains the field "status", but the target does not.

TO-DO's

  • Translate the comment before adding/taking to/from database
  • Correct implementation of yaml/env
  • Write Usage Guide and test the application using just usage guide
  • Implement rabbit mq methods

About

A micro-service example written with Go using net/http

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published