Architecture
The BioSimulations/BioSimulators platform is a distributed computing system that is architected for extensibility, scalability, and ease of development. By separating the various components of the platform, we hope to enable developers to focus on relevant portions of the system and not on the details of the underlying architecture. In deciding which parts of the system should be separated, we try to balance the added complexity of distributed computing with clean separation of concerns. Details about the decisions and thought processes behind the architecture can be found in Architecture philosophy page.
The components of the platform are organized as follows:
- Front-end applications
- BioSimulations (
platform
app) - runBiosimulations (
dispatch
app) - BioSimulators (
simulators
app)
- BioSimulations (
- Public APIs
- BioSimulations API (
api
app) - BioSimulators API (
simulators-api
app)
- BioSimulations API (
- Back-end services
- Dispatch service (
dispatch-service
app) - COMBINE API (
combine-api
app)
- Dispatch service (
- Data storage
- Mongo database
- S3 buckets (accessed through
api
app)
- Computing infrastructure
- GKE Kubernetes cluster
- High performance computing cluster managed with SLURM
Last update:
2023-04-12