1.Cấu trúc dự án
## 1.1. Mục Tiêu Chương
* Root level
.mvn, mvnw, pom.xml
Project build bằng Maven
-
pom.xml→ quản lý dependency, plugin build WSO2 -
.mvn→ config Maven wrapper
+ deployment/
Cấu hình runtime & deploy
-
deployment.toml→ config server (port, datasource, kafka...) -
docker/→ chạy container (nếu có) -
libs/→ thêm JAR custom (Kafka client, connector...)
+ docs/
👉 Tài liệu project (thiết kế, API spec...)
* Source chính
+ src/main/java
Nếu có custom Java (hiện tại bạn chưa dùng)
+ src/main/wso2mi ⭐ (QUAN TRỌNG NHẤT)
Đây là toàn bộ logic integration
+ artifacts/ (TRÁI TIM HỆ THỐNG)
+ apis/
API nhận request từ client
-
KafkaProducerApi.xml
→ API nhận request → đẩy vào Kafka (producer) -
PlanningDirectApi.xml
→ API gọi trực tiếp backend (không qua Kafka)
+ inbound-endpoints/
Kafka Consumer (cực kỳ quan trọng)
-
Load_balance_example.xml
→ Lắng nghe Kafka topic
→ Khi có message → trigger sequence xử lý
Đây chính là chỗ load balancing bằng Kafka
+ sequences/
Logic xử lý nghiệp vụ
-
Load_balance_example-inboundSequence.xml
→ Xử lý message lấy từ Kafka
→ gọi backend -
Load_balance_example-inboundErrorSequence.xml
→ xử lý lỗi khi fail
+ endpoints/
Định nghĩa backend service
Ví dụ:
-
HTTP endpoint
-
REST API backend
+ local-entries/
Config dùng chung
-
KafkaConnection.xml
→ cấu hình Kafka broker (host, port, topic...)
+ message-stores/
Lưu message (queue trung gian)
Dùng khi:
-
retry
-
đảm bảo không mất dữ liệu
+ message-processors/
Xử lý message từ store
Ví dụ:
-
retry gửi lại
-
xử lý batch
+ proxy-services/
Proxy service (SOAP/HTTP)
Thường dùng khi:
-
wrap service cũ
-
expose service trung gian
+ data-services/
Kết nối database
Tạo API CRUD trực tiếp DB
+ data-sources/
👉 Cấu hình kết nối DB
+ tasks/
👉 Job chạy định kỳ (cron job)
+ templates/
👉 Template tái sử dụng
👉 Giúp:
-
tránh lặp code sequence / endpoint
+ resources/
👉 Tài nguyên bổ trợ
-
conf/→ config runtime (properties) -
connectors/→ Kafka connector JAR -
api-definitions/→ Swagger/OpenAPI -
metadata/→ metadata của artifact
