PakLog Overall System Architecture
Complete System Architecture
architecture-beta
group api(cloud)[API Gateway]
group wms(server)[WMS Services]
group wes(server)[WES Services]
group shared(database)[Shared Services]
group external(internet)[External Systems]
service apiGateway(server)[API Gateway] in api
service loadBalancer(server)[Load Balancer] in api
service orderMgmt(disk)[Order Management] in wms
service inventory(disk)[Inventory Service] in wms
service wavePlanning(disk)[Wave Planning] in wms
service locationMaster(disk)[Location Master] in wms
service workloadPlanning(disk)[Workload Planning] in wms
service taskExecution(server)[Task Execution] in wes
service pickExecution(server)[Pick Execution] in wes
service packShip(server)[Pack & Ship] in wes
service physicalTracking(server)[Physical Tracking] in wes
service wesOrchestration(server)[WES Orchestration] in wes
service quality(disk)[Quality Management] in shared
service locationTracking(disk)[Location Tracking] in shared
service eventBus(queue)[Event Bus - Kafka] in shared
service cache(database)[Redis Cache] in shared
service erp(internet)[ERP System] in external
service tms(internet)[TMS System] in external
service ecommerce(internet)[E-Commerce] in external
apiGateway:R --> L:orderMgmt
apiGateway:R --> L:inventory
apiGateway:R --> L:wavePlanning
apiGateway:B --> T:taskExecution
apiGateway:B --> T:pickExecution
orderMgmt:B --> T:eventBus
inventory:B --> T:eventBus
wavePlanning:B --> T:eventBus
taskExecution:B --> T:eventBus
pickExecution:B --> T:eventBus
packShip:B --> T:eventBus
eventBus:R --> L:wesOrchestration
taskExecution:R --> L:cache
pickExecution:R --> L:cache
locationMaster:B --> T:locationTracking
physicalTracking:B --> T:locationTracking
packShip:R --> L:quality
ecommerce:B --> T:apiGateway
erp:R --> L:apiGateway
tms:R --> L:apiGateway
System Communication Patterns
architecture-beta
group sync(cloud)[Synchronous Communication]
group async(cloud)[Asynchronous Communication]
group data(database)[Data Layer]
service restApi(server)[REST APIs] in sync
service grpc(server)[gRPC Services] in sync
service graphql(server)[GraphQL Gateway] in sync
service kafka(queue)[Apache Kafka] in async
service eventStore(database)[Event Store] in async
service sagaOrch(server)[Saga Orchestrator] in async
service postgres(database)[PostgreSQL] in data
service mongodb(database)[MongoDB] in data
service redis(database)[Redis Cache] in data
restApi:B --> T:postgres
grpc:B --> T:mongodb
graphql:R --> L:redis
restApi:R --> L:kafka
grpc:R --> L:kafka
kafka:B --> T:eventStore
kafka:R --> L:sagaOrch
sagaOrch:B --> T:postgres
Deployment Architecture
architecture-beta
group prod(cloud)[Production Environment]
group staging(cloud)[Staging Environment]
group monitoring(server)[Monitoring]
service k8sProd(server)[Kubernetes Cluster] in prod
service istio(server)[Istio Service Mesh] in prod
service nginx(internet)[NGINX Ingress] in prod
service k8sStage(server)[Kubernetes Cluster] in staging
service jenkins(server)[Jenkins CI/CD] in staging
service prometheus(disk)[Prometheus] in monitoring
service grafana(disk)[Grafana] in monitoring
service elk(disk)[ELK Stack] in monitoring
service jaeger(disk)[Jaeger Tracing] in monitoring
nginx:B --> T:istio
istio:B --> T:k8sProd
k8sProd:R --> L:prometheus
k8sProd:R --> L:elk
k8sProd:R --> L:jaeger
prometheus:R --> L:grafana
jenkins:B --> T:k8sStage
jenkins:R --> L:k8sProd