-
Notifications
You must be signed in to change notification settings - Fork 3
Simulator
Bradford Stephens edited this page Feb 17, 2016
·
3 revisions
See the [https://github.com/22Acacia/sossity](Sossity README) for command line args, and the Test Config file format for configuration options.
The Sossity simulator creates a virtual series of pipelines, processes, and flows. It uses the identical planning code from the Sossity planner, so all data output should be identical to production code.
Simply create input files as proper JSON objects in a text file ([{obj1},{obj2},{obj3}]
etc) and the simulator takes care of everything else.
The simulator relies on the homoiconic nature of Clojure to make it easy to build an execute a graph of processes.
- The config files are parsed with
sossity.core
and the resource dependency graph is generated - The simulator does a breadth-first traversal of this graph and annotates the data structure with
Processes
andChannels
. These represent Pubsubs and Cloud Dataflow jobs in production. - In the nodes of the graph, the
go-loop
fromcore.async
in every process loads the pipeline jars and execution class form the config file into a JVM thread -
pub
s andsub
s fromcore.async
channels are created on the edges of the graph. - At every
Source
, a process loads the .json file indicated in the config file and writes the data to apub
. - Data is passed through channels and processes, transformed until it is output to the filesystem in the
test-output
directory for everySink
.