Architecture
The technical foundation behind every Flowtig application.
Flowtig is designed as a modular platform where independent applications share a common technical foundation while remaining logically separated.
Instead of building one large monolithic application, Flowtig separates business domains into dedicated services that communicate through shared conventions and platform infrastructure.
This document describes the architectural principles behind the platform.
Platform Overview
Flowtig consists of four major layers.
flowchart TB
CLIENTS["Clients<br/>Web · Mobile · Desktop"]
GATEWAY["Gateway<br/>Routing · Navigation · Authentication"]
CORE["Platform Core<br/>Identity · Permissions · Billing · Tenants"]
APPS["Applications<br/>Independent Business Domains"]
TOOLS["Tools<br/>Focused Utilities"]
INFRA["Infrastructure<br/>Containers · Databases · Object Storage · Background Tasks"]
CLIENTS --> GATEWAY
GATEWAY --> CORE
CORE --> APPS
CORE --> TOOLS
APPS --> INFRA
TOOLS --> INFRA
Platform Core
Every application relies on the same platform services.
Core responsibilities include:
- Authentication
- Identity management
- Tenant management
- Permissions
- Subscriptions
- Billing
Applications do not reimplement these concerns, allowing every service to remain focused on its own business domain.
Applications
Business functionality is divided into independent applications.
Examples include:
- Contacts
- Worktime
- Time Tracking
- Invoices
- Warehouse
- Construction Log
- Real Estate
Each application:
- owns its business logic
- defines its own data model
- integrates through shared platform conventions
- can evolve independently
Tools
Not every feature requires a complete business application.
Flowtig therefore also provides lightweight tools designed to solve individual technical or business problems.
Examples include:
- Daywalker
- IBAN Checker
Tools share the same infrastructure as applications while remaining intentionally focused.
Multi-Tenant by Design
Tenant isolation is a fundamental architectural principle.
Each organisation operates inside its own isolated data scope.
Platform-wide services such as authentication, subscriptions and permissions remain shared while business data stays separated.
Key principles include:
- Tenant isolation
- Explicit permissions
- Role-based access
- Shared platform services
API Design
Flowtig primarily exposes functionality through GraphQL.
REST endpoints are used where appropriate for infrastructure, administration and specialised workflows.
The platform emphasises:
- Clear schema ownership
- Strong typing
- Predictable interfaces
- Stable contracts
Infrastructure
Flowtig is designed for modern cloud-native deployments.
Typical platform components include:
- Docker containers
- PostgreSQL
- Redis
- Celery
- Object Storage
- CI/CD pipelines
Every application shares the same operational foundation while remaining independently maintainable.
Design Principles
Several architectural principles guide every decision within Flowtig.
Modularity
Applications should remain independently understandable and maintainable.
Explicitness
Platform behaviour should always be predictable and transparent.
Scalability
New applications should integrate naturally without requiring architectural changes.
Consistency
Users should experience the same navigation, permissions and workflows across the entire platform.
Long-Term Maintainability
Flowtig is designed to evolve continuously while preserving structural clarity.
The Bigger Picture
Flowtig is not simply a collection of applications.
It is a platform designed to grow through independent services that share one common foundation.
The objective is simple:
Grow functionality without growing complexity.