Architecture Documentation
Architecture documentation for the JWST Data Analysis Application, organized using the 4+1 Architectural View Model.
+1 Scenarios (Use Cases)
The scenarios tie all views together — start here to understand what the system does.
- Use Case Catalog — Primary use cases from discovery to composite creation
- Quality Attributes — Performance, scalability, security, and reliability scenarios
Logical View
Structure of the system: domain model, API boundaries, and component responsibilities.
- System Overview — High-level microservices architecture and communication patterns
- Domain Model — Entity relationships (User, JwstData, Job, Composite, Mosaic, Target, Recipe)
- API Contracts — Service-to-service API boundary map with all endpoints
- Backend Service Layer — .NET repository pattern and service architecture
- Frontend Architecture — Route structure and component hierarchy
- Processing Engine — Python FastAPI scientific computing modules
- MongoDB Documents — Flexible document schema for JWST data records
- Storage Layer — Storage abstraction across .NET and Python
- Data Lineage — JWST data processing levels and observation grouping
- Security & Authorization Model — User roles, data visibility, and access control
Process View
Runtime behavior: concurrency, async jobs, real-time communication, and error handling.
- Concurrency Model — Job queues, worker threading, SignalR lifecycle, rate limiting
- Error Recovery — Failure modes, Polly retry/circuit-breaker, resumable downloads
- Job Queue & SignalR — Async job pattern for composite, mosaic, and thumbnails
- Authentication Flow — JWT-based authentication with access and refresh tokens
Data Flows
- Discovery & Recipe Flow — Browsing featured targets, searching MAST, and recipe suggestions
- GuidedCreate Flow — End-to-end user journey from recipe selection to composite result
- MAST Import Flow — Searching and importing data from the MAST portal with chunked downloads
- Local Upload Flow — Uploading JWST data files directly to the application
Development View
Code organization, build pipeline, dependencies, and versioning.
- Module Dependencies — Package and module dependency diagrams per service
- Build Pipeline — CI/CD flow from pre-commit hooks through GitHub Actions to deploy
- Versioning Strategy — Service versioning, dependency pinning, and upgrade paths
Physical View
Deployment topology, networking, and infrastructure.
- Deployment Architecture — Dev, staging, and production topology with scaling path
- Network Topology — All ports, protocols, firewall rules, and TLS configuration
- Docker Compose — Application stack orchestration details
See Also
- Development Plan — Project roadmap
- Key Files — Important file locations
- Quick Reference — API and CLI cheat sheet
- Backend Development Standards
- Frontend Development Standards
- Database Models