SinkAlert Rail · Verity Technology · รฟม.
End-to-End Data Flow
How รฟม. feeds data → how sources are pulled → how the Risk Engine works → how every user gets the result. All hosted in our AWS cloud (SaaS).
flowchart LR
subgraph SRC["1 · DATA SOURCES"]
direction TB
MRTA["รฟม. (MRTA)
alignment · chainage · asset
borehole · piezometer · settlement
TBM log · construction · incident"]
OPEN["Open sources
Sentinel-1 InSAR (Copernicus)
DMR geology · DGR groundwater
TMD rain · BMA GIS"]
end
subgraph CLOUD["2 · SINKALERT SaaS — AWS (Verity-hosted)"]
direction TB
ING["Ingestion
API Gateway · file upload · data room"]
PULL["Scheduled ETL pull
(auto-refresh)"]
CAT["Data Catalog
lineage · quality · PDPA"]
RISK["Risk Engine
MCDA + XGBoost/LightGBM
InSAR · SHAP"]
DB["Data store
PostgreSQL · object storage"]
end
subgraph OUT["3 · DELIVERY"]
direction TB
DASH["Web Dashboard
Executive · Engineering · Field"]
API["Read-only API
OpenAPI · OAuth2"]
ALERT["Alerts
LINE OA · email · in-app"]
RPT["Reports
PDF · Excel · CSV"]
end
MRTA -- "upload / API" --> ING
OPEN -- "auto-pull" --> PULL
ING --> CAT
PULL --> CAT
CAT --> RISK --> DB
DB --> DASH
DB --> API
DB --> RPT
RISK -- "risk events" --> ALERT
1 · How data enters
- รฟม. uploads / pushes via API / secure data room (alignment, borehole, TBM, incident…)
- Open sources are auto-pulled on schedule (InSAR, geology, water, rain, BMA)
2 · Inside the SaaS (AWS)
- Ingestion → Catalog (lineage + quality + PDPA) → Risk Engine → store
- We host all data; รฟม. never runs its own infra
3 · How users get data
- Dashboard (web) · read-only API · alerts (LINE/email/in-app) · reports (PDF/Excel/CSV)
- Field inspectors get mobile-responsive task + photo upload