The system contains four major components:
As a multi-tenant system, a JTracker server can serve many users/organizations/projects at the same time.
A JTracker server provides two major centrally managed functionalities: maintaining workflow registry and orchestrating job execution.
Typically, a user starts from choosing a workflow (either developed by herself or shared by others), then creates a job queue and starts to enqueue jobs. For execution, she launches Executors via JTracker CLI in any compute environment of her choice. With scheduling services provided by the central JTracker server, all executors will be able to pull tasks in a fully automated and coordinated fashion. The user can add or remove executors as needed.
This entity relationship diagram illustrates JTracker's major entity types and their relationships.
It's worth mentioning that every single object of any type produced in JTracker is instantiated with a UUID and it's completely immutable. This forms the foundation for trackability and provenance.