The Strymon open source edition currently contains of a single repository called strymon-core, containing the publish-subscribe mechanism as well as a simple example application.

Directory structure

  • apps/

    The example applications shipped with Strymon core. Please refer to how to run an example for more information about them.

  • src/

    This folder contains the source code for the crates which form the core of the Strymon publish-subscribe mechanism and execution run-time.

    • strymon_cli: This binary crate contains the implementation of the strymon command-line interface.

    • strymon_job: Client library for writing custom Strymon jobs. This crate also implements the publish-subscribe protocol.

    • strymon_coordinator: The implementation and internal APIs of the coordinator and catalog.

    • strymon_executor: The default executor implementation and job spawning logic for native executables.

    • strymon_rpc: The message types used for remote-procedure calls between the different Strymon components.

    • strymon_model: Common data type definitions, used mainly in the catalog.

    • strymon_communication: Low-level networking code used for communication between the different components of Strymon.

  • bin/

    The command-line utility for interacting with the Strymon cluster. Their usage is documented in here.

  • conf/

    Folder for configuration files. At present, contains a default host file for running the executors. The conf/executors file shall contain a single host name per line. Note that the scripts currently do not support running more than one executor per machine.

  • logs/

    The default destination for log files created by the coordinator and executor instances.

  • jobs/

    A temporary working directory for storing the artifacts of running jobs. Each job process gets its own directory: jobs/<submission-timestamp>_<job-id>/<process-index>/