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