System Overview
High-level view of the microservices architecture and their communication patterns.
flowchart TB
subgraph Client["Client Layer"]
Browser["User Browser"]
end
subgraph Frontend["Frontend (Port 3000)"]
React["React + TypeScript\n(Vite)"]
end
subgraph Backend["Backend API (Port 5001)"]
DotNet[".NET 10 API"]
Controllers["Controllers:\n- JwstData, DataManagement\n- Mast, Composite, Mosaic\n- Analysis, Auth, Jobs, Discovery"]
Services["Services:\n- MongoDBService, MastService\n- Composite/Mosaic/AnalysisService\n- DiscoveryService, ThumbnailService\n- AuthService, JobTracker"]
end
subgraph Processing["Processing Engine (Port 8000)"]
FastAPI["Python FastAPI"]
Modules["Modules:\n- MAST, Composite, Mosaic\n- Analysis, Discovery/Recipe"]
SciLibs["Scientific Libraries:\nNumPy, Astropy, SciPy\nreproject, photutils"]
end
subgraph Storage["Data Storage"]
MongoDB[("MongoDB\n(Port 27017)")]
ObjectStore[("S3-Compatible Storage\n(SeaweedFS / AWS S3)")]
end
subgraph External["External Services"]
MAST["STScI MAST Portal\n(astroquery.mast)"]
STScI[("STScI Archive\nJWST Data")]
end
Browser -->|HTTP| React
React -->|REST API + SignalR| DotNet
DotNet --> Controllers
Controllers --> Services
Services -->|MongoDB.Driver| MongoDB
Services -->|HTTP POST| FastAPI
Services -->|IStorageProvider| ObjectStore
FastAPI --> Modules
Modules --> SciLibs
Modules -->|astroquery| MAST
MAST --> STScI
FastAPI -->|StorageProvider| ObjectStore