PakLog is a modern Warehouse Management System (WMS) and Warehouse Execution System (WES) built with microservices architecture, Domain-Driven Design (DDD), and event-driven patterns. This documentation provides comprehensive technical details about the system architecture, implementation, and operations.
graph TB
subgraph "Documentation Categories"
ARCH[Architecture<br/>Diagrams]
SEQ[Sequence<br/>Diagrams]
DOMAIN[Domain<br/>Models]
STATE[State<br/>Machines]
DEPLOY[Deployment &<br/>Infrastructure]
DATA[Data Flow &<br/>Integration]
API[API<br/>Documentation]
end
ARCH --> C4[C4 Model]
SEQ --> FLOWS[Business Flows]
DOMAIN --> DDD[DDD Models]
STATE --> FSM[State Transitions]
DEPLOY --> K8S[Kubernetes]
DATA --> ETL[ETL/Streaming]
API --> REST[REST APIs]
Purpose: System architecture using C4 model Contents:
Key Diagrams:
Purpose: Detailed business flow interactions Contents:
Key Diagrams:
Purpose: Domain-Driven Design models and relationships Contents:
Key Models:
Purpose: Entity lifecycle and state transitions Contents:
Key Patterns:
Purpose: Infrastructure architecture and deployment patterns Contents:
Key Technologies:
Purpose: Data processing and system integration patterns Contents:
Key Patterns:
Purpose: Complete REST API specifications with examples Contents:
Key Features:
C4Context
title PakLog WMS/WES System Context
Person(ops, "Operations", "Warehouse staff")
Person(admin, "Admin", "System admin")
System(paklog, "PakLog WMS/WES", "Warehouse Management")
System_Ext(erp, "ERP", "Enterprise system")
System_Ext(ecom, "E-Commerce", "Order source")
System_Ext(tms, "TMS", "Transportation")
Rel(ops, paklog, "Uses")
Rel(admin, paklog, "Manages")
Rel(ecom, paklog, "Orders")
Rel(paklog, erp, "Syncs")
Rel(paklog, tms, "Ships")
| Layer | Technology | Purpose |
|---|---|---|
| Language | Java 21 | Primary development language |
| Framework | Spring Boot 3.2 | Microservices framework |
| Messaging | Apache Kafka | Event streaming |
| Databases | MongoDB, PostgreSQL, Redis | Polyglot persistence |
| Container | Docker, Kubernetes | Container orchestration |
| Monitoring | Prometheus, Grafana | Observability |
| API Gateway | Spring Cloud Gateway | API routing |
| Service Mesh | Istio | Service communication |
mindmap
root((Design Patterns))
Architecture
Microservices
Event-Driven
Hexagonal
CQRS
Domain
DDD
Aggregates
Value Objects
Domain Events
Integration
Saga Pattern
Event Sourcing
Pub-Sub
API Gateway
Resilience
Circuit Breaker
Retry Logic
Bulkhead
Timeout
1
2
3
4
5
6
7
8
9
10
11
12
# Clone repository
git clone https://github.com/paklog/paklog.git
# Start infrastructure
docker-compose up -d mongodb postgresql redis kafka
# Build services
mvn clean package
# Run a service
cd wave-planning-service
mvn spring-boot:run
1
2
3
4
5
6
7
8
9
10
11
# Get access token
curl -X POST http://localhost:8080/oauth/token \
-d "grant_type=client_credentials" \
-d "client_id=test" \
-d "client_secret=secret"
# Create a wave
curl -X POST http://localhost:8080/v1/waves \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"warehouseId": "WH001", "type": "STANDARD"}'
| Metric | Value |
|---|---|
| Total Documentation Files | 8 |
| Total Diagrams | 50+ |
| Mermaid Diagrams | 45+ |
| API Endpoints Documented | 25+ |
| Lines of Documentation | 5,000+ |
Please refer to our contribution guidelines for:
Copyright © 2024 PakLog. All rights reserved.
Last Updated: January 2024 Version: 1.0.0 Status: Production Ready