EN

Platform UI is currently English-only. Other languages here track your preference for future translations.

Go to Home
v1.0 · Go 1.26.1

core-platform

Multi-protocol microservice platform for translation services

A Go-based microservice that provides translation functionality through multiple communication protocols including HTTP REST, gRPC, AMQP RPC (RabbitMQ), and NATS RPC.

View on GitHub

Key Features

Everything you need to run translation services across multiple protocols with a clean, extensible architecture.

Multi-Protocol Support

Expose the same business logic via HTTP, gRPC, AMQP RPC, and NATS RPC — all running concurrently in one service.

Clean Architecture

Organized with clear separation between controllers, use cases, and repositories — easy to extend and maintain.

Translation Services

Core functionality for text translation with full history tracking — know what was translated and when.

Database Integration

PostgreSQL with migration support ensures your translation history is stored reliably and queried efficiently.

Message Brokers

Support for both RabbitMQ and NATS message brokers, giving you flexibility in your infrastructure choices.

Configuration

Environment-based configuration with sensible defaults — get started quickly and tune as needed.

Architecture

The platform uses a layered design where protocol-specific controllers delegate to shared use cases and repositories, ensuring consistent behavior across all communication channels.

Controllers

  • HTTP — REST API endpoints at /v1/translation
  • gRPC — Protocol buffer-based service
  • AMQP RPC — RabbitMQ-based RPC calls
  • NATS RPC — NATS-based RPC calls

Data Layer

  • PostgreSQL — Persistent storage for translation history
  • Web API — External translation service integration (stub implementation)

Tech Stack

Go 1.26.1 Fiber v2 (HTTP) PostgreSQL + pgx RabbitMQ NATS gRPC / Protobuf Zerolog Env Variables

The service maintains translation history in PostgreSQL and provides the same functionality across all supported protocols.

Quick Start

Get up and running in three simple steps.

1

Start Infrastructure

Launch PostgreSQL, RabbitMQ, and NATS with a single command.

2

Run Migrations

Apply database migrations and configure your environment file.

3

Run the App

Start the application and access all protocol endpoints.

# Start infrastructure
docker-compose up -d postgres rabbitmq nats

# Run migrations
docker-compose up migrate

# Configure environment
cp .env.example .env

# Run the application
make run  # or go run cmd/app/main.go

API Endpoints

HTTP REST
:8080/v1/translation
gRPC
:8081
RabbitMQ (AMQP)
amqp://localhost:5672/
Management UI: :15672
NATS
nats://localhost:4222/
Monitoring: :8222

The service maintains translation history in PostgreSQL and provides the same functionality across all supported protocols.

Reconnecting to the server...

Reconnecting in sec.

Failed to reconnect.
The page will reload automatically.

Session paused by the server.

Failed to resume the session.
Reloading the page...