平台架構
每個 Flowtig 應用程式背後的技術基礎。
Flowtig 被設計為一個模組化平台,讓彼此獨立的應用程式共用相同的技術基礎,同時在邏輯上保持分離。
Flowtig 並不是建立一個龐大而單一的應用程式,而是將不同的業務領域拆分為專門的服務,並透過共用的規範與平台基礎架構彼此協作。
本文件說明 Flowtig 平台背後的架構原則。
平台概覽
Flowtig 由幾個主要層級組成。
flowchart TB
CLIENTS["用戶端<br/>網頁 · 行動裝置 · 桌面"]
GATEWAY["Gateway<br/>路由 · 導覽 · 驗證"]
CORE["平台核心<br/>身分 · 權限 · 計費 · 租戶"]
APPS["應用程式<br/>獨立的業務領域"]
TOOLS["工具<br/>專門用途的工具"]
INFRA["基礎架構<br/>容器 · 資料庫 · 物件儲存 · 背景工作"]
CLIENTS --> GATEWAY
GATEWAY --> CORE
CORE --> APPS
CORE --> TOOLS
APPS --> INFRA
TOOLS --> INFRA
平台核心
每個應用程式都使用相同的平台服務。
核心職責包括:
- 驗證
- 身分管理
- 租戶管理
- 權限
- 訂閱
- 計費
各個應用程式不需要重新實作這些功能,因此每個服務都可以專注於自己的業務領域。
應用程式
業務功能被劃分為彼此獨立的應用程式。
例如:
- 聯絡人
- 工時管理
- 工時追蹤
- 發票
- 倉庫
- 施工日誌
- 不動產
每個應用程式:
- 擁有自己的業務邏輯
- 定義自己的資料模型
- 透過共用的平台規範進行整合
- 可以獨立發展
工具
並非每項功能都需要一個完整的業務應用程式。
因此,Flowtig 也提供輕量化工具,專門用於解決個別的技術或業務問題。
例如:
- Daywalker
- IBAN Checker
這些工具與應用程式共用相同的基礎架構,同時刻意保持專注且精簡。
原生的多租戶設計
租戶隔離是 Flowtig 的核心架構原則之一。
每個組織都在自己隔離的資料範圍內運作。
驗證、訂閱及權限等平台層級服務由所有租戶共用,而業務資料則彼此分離。
主要原則包括:
- 租戶隔離
- 明確的權限
- 以角色為基礎的存取控制
- 共用的平台服務
API 設計
Flowtig 主要透過 GraphQL 提供功能。
在基礎架構、系統管理及特殊工作流程等適合的情況下,則使用 REST 端點。
平台著重於:
- 清楚的 Schema 所有權
- 強型別
- 可預測的介面
- 穩定的契約
基礎架構
Flowtig 專為現代化的雲端原生部署環境而設計。
典型的平台元件包括:
- Docker 容器
- PostgreSQL
- Redis
- Celery
- 物件儲存
- CI/CD Pipeline
所有應用程式都共用相同的營運基礎,同時仍然可以彼此獨立維護。
設計原則
Flowtig 的每項架構決策都遵循幾項核心原則。
模組化
應用程式應該保持彼此獨立,並且容易理解與維護。
明確性
平台的行為應始終保持可預測且透明。
可擴充性
新的應用程式應能自然地整合至平台,而不需要修改整體架構。
一致性
使用者在整個平台中都應該獲得一致的導覽、權限及工作流程體驗。
長期可維護性
Flowtig 的設計允許平台持續演進,同時維持清楚的整體結構。
更完整的願景
Flowtig 不只是一系列應用程式的集合。
它是一個透過獨立服務持續成長、同時共用相同基礎的平台。
目標很簡單:
在增加功能的同時,不增加複雜度。