This service utilizes separate containers for REST API management, job processing, and datastorage with MongoDB, ensuring scalable and robust performance.
The REST API can be accessed via Swagger UI here: https://biochecknet.biosimulations.org/docs
biosim-server
uses a microservices architecture which presents the following libraries:
api
: This library handles all requests including saving uploaded files, pending job creation, fetching results, and contains the user-facing endpoints.common
: This library contains shared content.workflows
: This library handles all job processing tasks for verification services such as job status adjustment, job retrieval, and comparison executionworker
: This library performs all workflow tasks
Container management is handled by Kubernetes in Google Cloud. The full K8 config/spec can be found in the kustomize
directory. Dependency management is handled by poetry
.
-
This application currently uses the Temporal durable execution technology to manage distributed and fault tolerant workflow tasks.
-
If running temporal workflows in the pycharm debugger fails, please read https://youtrack.jetbrains.com/issue/PY-62467/TypeError-Task-object-is-not-callable-debugging-uvloop-with-asyncio-support-enabled