跳轉至

平台架構

每個 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 不只是一系列應用程式的集合。

它是一個透過獨立服務持續成長、同時共用相同基礎的平台。

目標很簡單:

在增加功能的同時,不增加複雜度。