Modules Overview
Backend Services
The PhotoFlow backend consists of multiple microservices, each responsible for a specific domain.
Core Services
Service | Description | Key Features |
|---|---|---|
Core album workflow management | State machine, photo sync, feedback | |
Cloud provider integration | Google Drive sync, file management | |
Identity Service | Authentication & authorization | OAuth2, JWT tokens, policies |
Organization Service | Multi-tenant organization management | Org CRUD, member management |
Supporting Services
Service | Description |
|---|---|
Provider Service | External provider configurations |
Sender Service | Email/SMS notification delivery |
AppGateway | API Gateway, routing, middleware |
BuildingBlocks
Shared libraries used across all services:
Library | Purpose | Key Components |
|---|---|---|
BuildingBlocks.Authentication | Auth infrastructure | Policies, JWT handling |
BuildingBlocks.Cloud | Cloud providers | Google, AWS adapters |
BuildingBlocks.SignalR | Real-time communication | Hub, notification service |
BuildingBlocks.StateMachine | Workflow engine | State machine definitions |
BuildingBlocks.Caching | Distributed caching | Redis integration |
BuildingBlocks.Persistence | Data access | EF Core, repositories |
BuildingBlocks.Exception | Error handling | Custom exceptions |
BuildingBlocks.Messaging | Event bus | Internal events |
Frontend Applications
Application | Technology | Purpose |
|---|---|---|
pfl01y25-fe-web | Angular 19 | Admin portal for photographers |
photoflow | Angular 19 | Public marketing website |
Service Dependencies
Module Communication
Event-Driven Architecture
Services communicate through internal events:
REST API Calls
Some operations require synchronous REST calls:
Database per Service
Each service owns its database schema within the shared PostgreSQL instance:
Service | Schema/Tables |
|---|---|
Photoflow | Albums, AlbumTags, PhotoProcs, PhotoComments |
Storage | Folders, Files, AuditLogs |
Identity | Users, Tokens, RefreshTokens |
Organization | Organizations, Members, Invitations |
Quick Links
Architecture Overview