Microservices in Go: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
=External=
=External=
* [https://www.amazon.com/Microservices-Go-Building-scalable-microservices-ebook/dp/B0BHWM674P Microservices with Go: Building scalable and reliable microservices with Go] by Alexander Shuiskov
* [https://www.amazon.com/Microservices-Go-Building-scalable-microservices-ebook/dp/B0BHWM674P Microservices with Go: Building scalable and reliable microservices with Go] by Alexander Shuiskov
=TODO=
<font color=darkkhaki>
* Finalize the book, left here: https://learning.oreilly.com/library/view/microservices-with-go/9781804617007/B18865_09.xhtml#:-:text=Testing%20is%20an,always%20important%20to
* Distill the Handler/Controller/Persistence model into a NOKB article.
</font>
=Internal=
=Internal=
* [[Go_Project#Microservice-based_Project_Layout|Go Project]]
* [[Go_Code_Examples|Go Code Examples]]
* [[Go_Code_Examples|Go Code Examples]]
* [[Microservices]]
* [[Microservices]]

Latest revision as of 20:18, 14 May 2024

External

TODO

Internal

Overview

Working Example

https://github.pie.apple.com/ovidiu-feodorov/go-micros

Project Layout

Each of the services metadata, movie, rating contains multiple packages. The entire application is developed as a module.

.
├── README.md
├── go.mod
├── metadata
│   ├── cmd
│   │   └── main.go
│   ├── internal
│   │   ├── controller
│   │   ├── handler
│   │   └── repository
│   └── pkg
├── movie
│   └── cmd
│       └── main.go
└── rating
    └── cmd
        └── main.go

go mod init go-micros

Service Overview

  • API
  • Data model
  • Business logic
  • Database (persistence)
  • Service dependencies