How reoden/go-nft works
This repository is a Go backend template and shared platform, with a working catalogs service centered on product operations. Its principal workflow is an API request routed to a product use case, which reads or changes product data and returns a response. The tree also documents or exposes gRPC, messaging, event sourcing, persistence, and observability capabilities. The sampled source confirms middleware and server behavior, but not the catalogs endpoint-to-handler wiring; those workflow links reflect the documented architecture and directory structure, not inspected handler implementations.
Main entry points: features Product Use Cases · echo_server.go HTTP Server · application.go Application Container · cqrs CQRS Mediator
Components 19
Catalogs Service
- Product Routes
internal/services/catalogs/internal/products/configurations/endpoints/endpoints.go - Product Use Cases
internal/services/catalogs/internal/products/features - Product Model
internal/services/catalogs/internal/products/models/product.go - Product Repository
internal/services/catalogs/internal/products/data/repositories/pg_product_repository.go - User Service Scaffold
internal/services/user/internal/shared/configurations/user/user_configurator.go
Application Platform
- HTTP Server
internal/pkg/http/customecho/echo_server.go - CQRS Mediator
internal/pkg/core/cqrs - Request Validation
internal/pkg/validation/pipeline/validation_pipeline.go - gRPC API
internal/pkg/grpc/server.go
Persistence
- PostgreSQL
internal/pkg/postgresgorm/gorm_db.go - Event Store
internal/pkg/eventstroredb/event_store.go - Elasticsearch
internal/pkg/elasticsearch/elasticsearch.go
Integration
- Message Bus
internal/pkg/core/messaging/bus/bus.go - RabbitMQ
internal/pkg/rabbitmq/bus/rabbitmq-bus.go - Redis
internal/pkg/redis/redis.go
Operations
- Auth Certification
internal/pkg/authcertification/auth_certification.go - Telemetry
internal/pkg/otel/metrics/metrics.go - Application Container
internal/pkg/fxapp/application.go
Other components
- API Client
Connections 18
- API Client → HTTP Server: sends request
- HTTP Server → Product Routes: routes request
- Product Routes → CQRS Mediator: dispatches request
- CQRS Mediator → Request Validation: runs pipeline
- CQRS Mediator → Product Use Cases: dispatches use case
- Product Use Cases → Product Repository: reads or writes
- Product Repository → PostgreSQL: persists data
- Product Use Cases → Product Model: uses model
- gRPC API → Product Model: serves products
- Message Bus → RabbitMQ: adapts transport
- Product Use Cases → Event Store: uses event storage
- Product Use Cases → Elasticsearch: search integration
- Application Container → HTTP Server: provides server
- Application Container → gRPC API: provides server
- Application Container → Product Routes: configures routes
- Auth Certification → HTTP Server: protects requests
- HTTP Server → Telemetry: records telemetry
- Application Container → User Service Scaffold: configures service