Go, NATS, gRPC and PostgreSQL clean architecture microservice with monitoring and tracing 👋

This page summarizes the projects mentioned and recommended in the original post on dev.to

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. stan.go

    NATS Streaming System

    Hi, in this article I've tried to make microservice using: 🚀 NATS as message broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MailHog Web and API based SMTP testing Redis Type-safe Redis client for Golang Nginx HTTP and reverse proxy server swag Swagger for Go

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. grpc-go

    The Go language implementation of gRPC. HTTP/2 based RPC

    Hi, in this article I've tried to make microservice using: 🚀 NATS as message broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MailHog Web and API based SMTP testing Redis Type-safe Redis client for Golang Nginx HTTP and reverse proxy server swag Swagger for Go

  4. pgx

    PostgreSQL driver and toolkit for Go

    Hi, in this article I've tried to make microservice using: 🚀 NATS as message broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MailHog Web and API based SMTP testing Redis Type-safe Redis client for Golang Nginx HTTP and reverse proxy server swag Swagger for Go

  5. Redis

    Redis Go client

    Hi, in this article I've tried to make microservice using: 🚀 NATS as message broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MailHog Web and API based SMTP testing Redis Type-safe Redis client for Golang Nginx HTTP and reverse proxy server swag Swagger for Go

  6. swag

    Automatically generate RESTful API documentation with Swagger 2.0 for Go.

    Hi, in this article I've tried to make microservice using: 🚀 NATS as message broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MailHog Web and API based SMTP testing Redis Type-safe Redis client for Golang Nginx HTTP and reverse proxy server swag Swagger for Go

  7. Go-NATS-Streaming-gRPC-PostgreSQL

    Go Nats Streaming gRPC PostgerSQL emails microservice

    For quering data our microservice has GetByID and Search handlers. Full source code and list of all used tools you can find here 👨‍💻 :) I hope this article is usefully and helpfully, I'll be happy to receive any feedbacks or questions :)

  8. viper

    Go configuration with fangs

    At the start of application we load yaml config using viper, initialize all that we need and run application:

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  10. jaeger

    CNCF Jaeger, a Distributed Tracing Platform

    Hi, in this article I've tried to make microservice using: 🚀 NATS as message broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MailHog Web and API based SMTP testing Redis Type-safe Redis client for Golang Nginx HTTP and reverse proxy server swag Swagger for Go

  11. Echo

    High performance, minimalist Go web framework

    For REST http i used echo, another good popular choice on my opinion is gin, and swag for generate RESTful API documentation. Create email handler accept requests, start tracing span, validate input using validator and call usecase method:

  12. prometheus

    The Prometheus monitoring system and time series database.

    Hi, in this article I've tried to make microservice using: 🚀 NATS as message broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MailHog Web and API based SMTP testing Redis Type-safe Redis client for Golang Nginx HTTP and reverse proxy server swag Swagger for Go

  13. Gin

    Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.

    For REST http i used echo, another good popular choice on my opinion is gin, and swag for generate RESTful API documentation. Create email handler accept requests, start tracing span, validate input using validator and call usecase method:

  14. opentracing-javascript

    Discontinued OpenTracing API for Javascript (both Node and browser). 🛑 This library is DEPRECATED! https://github.com/opentracing/specification/issues/163

    Hi, in this article I've tried to make microservice using: 🚀 NATS as message broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MailHog Web and API based SMTP testing Redis Type-safe Redis client for Golang Nginx HTTP and reverse proxy server swag Swagger for Go

  15. validator

    :100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving

    For REST http i used echo, another good popular choice on my opinion is gin, and swag for generate RESTful API documentation. Create email handler accept requests, start tracing span, validate input using validator and call usecase method:

  16. go-simple-mail

    Golang package for send email. Support keep alive connection, TLS and SSL. Easy for bulk SMTP.

    MailHog is good solution for email testing, and for go smtp client here used go-simple-mail.

  17. retry-go

    Simple golang library for retry mechanism

    processCreateEmail handling create email events, it's start tracing span, increase metrics counters, then unmarshal message data, and call usecase create method, if it fails, we retry for 3 times using retry-go, if it still fails, we check is the current message redelivered and if redelivery count > maxRedeliveryCount(it's up to your business logic, here is 3 times limit), handling error cases can be very different and depends on your service business logic, in this example used Dead Letter Queue approach.

  18. Grafana

    The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

    Hi, in this article I've tried to make microservice using: 🚀 NATS as message broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MailHog Web and API based SMTP testing Redis Type-safe Redis client for Golang Nginx HTTP and reverse proxy server swag Swagger for Go

  19. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • 5 DevOps Hacktoberfest Projects to Contribute to!

    6 projects | dev.to | 1 Oct 2024
  • Go 1.20 Released

    13 projects | news.ycombinator.com | 1 Feb 2023
  • blackbox exporter TLS

    2 projects | /r/PrometheusMonitoring | 25 Jan 2023
  • What is the coolest Go open source projects you have seen?

    84 projects | /r/golang | 15 Sep 2022
  • How i can determine S3 Bucket size about Prometheus with Thanos Sidecar??

    3 projects | /r/kubernetes | 14 Jul 2022

Did you know that Go is
the 4th most popular programming language
based on number of references?