Categorygithub.com/rezaAmiri123/test-microservice
repository
0.0.0-20221130073457-365c542ef312
Repository: https://github.com/rezaamiri123/test-microservice.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

Hi everyone
This is a test project about implementing a library
some technologies have been used in this project

Kafka as messages broker
gRPC Go implementation of gRPC
PostgreSQL as database
Jaeger open source, end-to-end distributed
tracing tracing
Prometheus monitoring and alerting
Redis Type-safe Redis client for Golang
Echo web framework

To run project on Docker

make docker_dev

To stop project on Docker

make docker_dev_down

To run project on kuberneties

make k8s_install

To stop project on kuberneties

make k8s_uninstall

Jaeger UI:

http://localhost:16686

Prometheus UI:

http://localhost:9090

.
├── api_service
│   ├── agent
│   │   ├── agent.go
│   │   ├── application.go
│   │   ├── auth_client.go
│   │   ├── http_server.go
│   │   ├── logger.go
│   │   ├── mertic.go
│   │   └── tracing.go
│   ├── app
│   │   ├── app.go
│   │   ├── command
│   │   │   ├── create_article.go
│   │   │   └── create_user.go
│   │   └── query
│   ├── cmd
│   │   └── api
│   │       └── main.go
│   ├── domain
│   │   └── dto
│   │       ├── create_article.go
│   │       ├── create_user.go
│   │       └── user_login.go
│   ├── metrics
│   │   └── metrics.go
│   └── ports
│       └── http
│           └── v1
│               ├── create_article.go
│               ├── create_user.go
│               ├── http_server.go
│               └── user_loign.go
├── deploy
│   └── test-microservice
│       ├── Chart.yaml
│       ├── templates
│       │   ├── deployment.yaml
│       │   ├── _helpers.tpl
│       │   ├── mysql-deployment.yaml
│       │   ├── mysql-py.yaml
│       │   ├── NOTES.txt
│       │   └── tests
│       │       └── test-connection.yaml
│       └── values.yaml
├── docker
│   ├── api_service.Dockerfile
│   ├── library_service.Dockerfile
│   ├── message_service.Dockerfile
│   └── user_service.Dockerfile
├── docker-compose-local.yaml
├── docker-compose.yaml
├── go.mod
├── go.sum
├── library_service
│   ├── adapters
│   │   ├── article_gorm_repository.go
│   │   └── pg
│   │       ├── article_repository.go
│   │       ├── article_repository_test.go
│   │       └── sql_queries.go
│   ├── agent
│   │   ├── agent.go
│   │   ├── application.go
│   │   ├── auth_client.go
│   │   ├── http_server.go
│   │   ├── kafka.go
│   │   ├── logger.go
│   │   ├── mertic.go
│   │   └── tracing.go
│   ├── app
│   │   ├── app.go
│   │   ├── commands
│   │   │   └── create_article.go
│   │   └── queries
│   │       └── get_article_by_slug.go
│   ├── cmd
│   │   └── library
│   │       └── main.go
│   ├── domain
│   │   └── article
│   │       ├── article.go
│   │       ├── mock
│   │       │   └── repository.go
│   │       └── repository.go
│   ├── metrics
│   │   └── metrics.go
│   ├── ports
│   │   ├── dto
│   │   │   └── article_create.go
│   │   ├── http
│   │   │   ├── create_aricle.go
│   │   │   ├── get_article_by_slug.go
│   │   │   └── http_server.go
│   │   └── kafka
│   │       ├── config.go
│   │       ├── consumer_group.go
│   │       ├── create_article_consumer.go
│   │       └── utils.go
│   └── proto
│       └── kafka
│           ├── kafka.pb.go
│           └── kafka.proto
├── Makefile
├── message_service
│   ├── adapters
│   │   └── pg
│   │       ├── email_repository.go
│   │       └── sql_queries.go
│   ├── agent
│   │   ├── agent.go
│   │   ├── application.go
│   │   ├── kafka.go
│   │   ├── logger.go
│   │   ├── mertic.go
│   │   └── tracing.go
│   ├── app
│   │   ├── app.go
│   │   ├── commands
│   │   │   └── create_email.go
│   │   └── queries
│   │       └── get_email_by_slug.go
│   ├── cmd
│   │   └── message
│   │       └── main.go
│   ├── domain
│   │   └── email
│   │       ├── email.go
│   │       ├── mock
│   │       │   └── repository.go
│   │       └── repository.go
│   ├── metrics
│   │   └── metrics.go
│   ├── ports
│   │   └── kafka
│   │       ├── config.go
│   │       ├── consumer_group.go
│   │       ├── create_email_consumer.go
│   │       └── utils.go
│   └── proto
│       └── kafka
│           ├── kafka.pb.go
│           └── kafka.proto
├── migrations
│   ├── 01_create_initial_tables.down.sql
│   └── 01_create_initial_tables.up.sql
├── monitoring
│   └── prometheus_docker.yml
├── pkg
│   ├── auth
│   │   ├── auth_client
│   │   │   └── grpc.go
│   │   ├── auth.go
│   │   ├── authorize.go
│   │   ├── middleware.go
│   │   └── tls
│   │       ├── files.go
│   │       └── tls.go
│   ├── converter
│   │   └── converter.go
│   ├── db
│   │   └── postgres
│   │       └── db_conn.go
│   ├── kafka
│   │   ├── client.go
│   │   ├── config.go
│   │   ├── constants.go
│   │   ├── consumer_group.go
│   │   ├── mock
│   │   │   └── producer.go
│   │   ├── producer.go
│   │   ├── reader.go
│   │   └── writer.go
│   ├── logger
│   │   ├── applogger
│   │   │   └── applogger.go
│   │   └── logger.go
│   ├── redis
│   │   └── redis.go
│   ├── tracing
│   │   ├── jaeger.go
│   │   └── utils.go
│   └── utils
│       └── validator.go
├── README.md
├── test
│   ├── kafka1
│   │   ├── consumer.go
│   │   └── producer.go
│   ├── main.go
│   └── message_example
│       └── producer.go
├── tls
│   ├── ca-config.json
│   ├── ca-csr.json
│   ├── client-csr.json
│   ├── keys
│   └── server-csr.json
└── user_service
    ├── adapters
    │   ├── user_gorm_repository.go
    │   ├── user_gorm_repository_test.go
    │   └── user_memory_repository.go
    ├── agent
    │   ├── agent.go
    │   ├── application.go
    │   ├── check_alive.go
    │   ├── grpc_server.go
    │   ├── http_server.go
    │   ├── kafka.go
    │   ├── logger.go
    │   ├── mertic.go
    │   └── tracing.go
    ├── app
    │   ├── app.go
    │   ├── command
    │   │   ├── create_user.go
    │   │   └── create_user_test.go
    │   └── query
    │       ├── get_profile.go
    │       ├── get_profile_test.go
    │       └── get_token_user.go
    ├── cmd
    │   └── user
    │       └── main.go
    ├── domain
    │   ├── auth.go
    │   ├── mock
    │   │   └── repository.go
    │   ├── repository.go
    │   ├── user.go
    │   └── user_test.go
    ├── metrics
    │   └── metrics.go
    ├── ports
    │   ├── grpc
    │   │   ├── grpc_handlers.go
    │   │   ├── grpc_server.go
    │   │   └── grpc_server_test.go
    │   ├── http
    │   │   ├── handlers.go
    │   │   └── http_server.go
    │   └── kafka
    │       ├── config.go
    │       ├── consumer_group.go
    │       ├── create_user_consumer.go
    │       └── utils.go
    └── proto
        ├── grpc
        │   ├── users_grpc.pb.go
        │   ├── users.pb.go
        │   └── users.proto
        └── kafka
            ├── user_kafka.pb.go
            └── user_kafka.proto