Skip to main content

Clustering Simflofy

Simflofy supports clustering to allow for redundancy and performance capabilities. Your Simflofy server can function as either a Job Runner, Event Processor or as a Configuration Server.


Adding Nodes to your Simflofy Cluster

  1. Install Simflofy following the Installation Guide.
  2. Set your Mongo configuration to use the same instance for all nodes in your Simflofy cluster

Simflofy-global.properties

  • simflofy.server.mode SINGLETON (most common) or DISTRIBUTED.
  • simflofy.server.job.runner Setting to true will start up Job Runner threads that will listen to the Job Queue.
  • simflofy.server.event.rule.processor - Event Rule Processing - when events are queued they need to be processed (matched) to any Event Configurations and then to Jobs that are associated with the Event Configurations. Setting to true will start up event rule processing threads. Set to false if you do not need to process events.
  • simflofy.event.queue Setting to true will add the event to the processing queue to be processed. Setting to false will not queue the event for Job processing.
  • simflofy.event.queue.retain - Days to retain an event in the event queue before discarding.

Server Mode

Simflofy can run in two different modes: Singleton or Distributed. Singleton is a non-clustered server that is used for Configuration, Running Jobs, and Processing Events. Distributed is a clustered server used any or all options; Configuration, Job Runner, Event Processing.

simflofy.server.mode = SINGLETON or DISTRIBUTED

In Distributed mode, starting a new Job will add the Job to a Job Queue that other Simflofy Admins (Job Runner's) are listening on.


Job Runner

A Job Runner server checks the job queue for jobs to be executed. This server nodes will monitor the queue for jobs.

simflofy.server.job.runner=true


Configuration Server

A Configuration Server is used for setup and configuration of jobs, reports and other administrative functionality.

simflofy.server.job.runner=false


Event Processor

An Event Processor Server listens for events to be processed. An event can only be processed by a one server. Every job that's registered for an event will receive a copy of that event.

simflofy.server.propagation.event.processor= true


Event Propagation

  • SINGLETON = not part of cluster
  • DISTRIBUTED = part of a cluster
    • Job added to queue (picked up by nodes)
    • simflofy.server.job.runner= true/false
      • Job Runner vs Configuration Server
      • AWS Instance for Configuration, Job Runners spread across the globe
    • Nodes are added to cluster by sharing the Mongo instance (will use the same event queues)
    • simflofy.server.propagation.event.processor= true/false
      • If a server picks up an event, another server can not
      • Every job that's registered for an event will get a copy of that event
        • it can execute something on that event by itself
        • For example
          • Create doc in Alfresco, event is propagated in Simflofy
            • All 5 jobs will get a copy of that event
        • Propagation of event (hold, record declared, etc.)

Simflofy Global Properties Options

  • simflofy.server.mode SINGLETON (most common) or DISTRIBUTED. In Distributed mode, starting a new Job will add the Job to a Job Queue that other Simflofy Admins (Job Runner's) are listening on.
  • simflofy.server.job.runner Setting to true will start up Job Runner threads that will listen to the Job Queue.
  • simflofy.server.event.rule.processor - Event Rule Processing - when events are queued they need to be processed (matched) to any Event Configurations and then to Jobs that are associated with the Event Configurations. Setting to true will start up event rule processing threads. Set to false if you do not need to process events.
  • simflofy.event.queue Setting to true will add the event to the processing queue to be processed. Setting to false will not queue the event for Job processing.
  • simflofy.event.queue.retain - Days to retain an event in the event queue before discarding.

Related Articles: