Categorygithub.com/Egor-Golang-TSM-Course/final-project-vechnonetot
module
0.0.0-20240323155929-4bb6d669c7aa
Repository: https://github.com/egor-golang-tsm-course/final-project-vechnonetot.git
Documentation: pkg.go.dev

# README

Финальный проект

В этом задании мы будет делать реальное тестовое задание от реальной компании на позицию Golang разработчика.

Задание предлагается вам в изначальном виде, каким его отправила компания.

Делайте его тщательно, это очень полезный для вас опыт. После того, как мы закончим работать с ним, я покажу вам финальный вид решения, которое было принято работодателем.

Обратите внимание, что в этом задании требуются тесты - без них задание не считается решенным.

Overview of the Task

Objective:

Implement a system with two microservices:

  • Gateway Service: A RESTful service that acts as a gateway, receiving user requests and forwarding them to the Hashing Service using gRPC.
  • Hashing Service: A service that checks if a payload's hash already exists and creates a hash for new payloads.

Requirements

  • Language and Library: The solution must be implemented in Go, leveraging the go-kit library for building microservices.
  • Architecture: Follow a clear architecture pattern (e.g., Clean Architecture, Hexagonal) to ensure separation of concerns and maintainability.

Endpoints:

  • CheckHash: Checks if the payload's hash already exists.
  • GetHash: Returns the hash for an existing payload.
  • CreateHash: Creates and stores a hash for a new payload.
  • Communication: The Gateway Service communicates with the Hashing Service using gRPC.
  • Testing: The solution should be thoroughly tested, including unit tests and integration tests to cover the logic and communication between services.

# 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