Architecture
System Architecture
Audience: Programmer
System Architecture
pyck is a modular microservices platform built in Go that provides a comprehensive logistics solution for warehousing operations. The architecture follows modern microservices principles with clear separation of concerns.
Core Components
Gateway Service
Aggregates GraphQL schemas from all services
Provides a unified API endpoint
Handles authentication and request routing
Domain Services
Main Data Service: Core data operations and primary data entities
Inventory Service: Stock levels, item movements, and inventory management
Management Service: System configurations and company-related information
Picking Service: Order picking workflow and processing
Receiving Service: Inbound shipment processing
File Service: File storage and document management
Workflow Service: Background task execution and process automation
Technical Infrastructure
pyck leverages several key technologies:
GraphQL: Main API interface with federation across services
PostgreSQL: Primary data storage
NATS.io: Event streaming and service messaging
Temporal.io: Workflow orchestration and reliable task execution
Docker: Containerization for consistent deployment
Zitadel: Authentication and authorization
MinIO/S3: Object storage for files and attachments
Service Communication
Services communicate through:
GraphQL Federation: For data queries and mutations
Event Streaming: Using NATS for asynchronous events
Workflow Orchestration: Temporal for complex process flows
Development Approach
The codebase follows these principles:
Go Backend: All backend services are written in Go
Infrastructure as Code: Docker Compose and Taskfile for automated setup
API-First Design: GraphQL schema definitions drive implementation
Code Generation: Models and GraphQL adapters are generated using entgo
CRUD+ System: Backend provides common basic functions for all warehouses
Process Workflows: Complex business logic implemented via temporal processes
Deployment Model
pyck can be deployed as:
Local Development Environment: Using Docker Compose
Kubernetes Cluster: Using Helm charts for production deployment
Last updated
Was this helpful?
