code: function DecisionPoller(name, domain, options) {
    if (!(this instanceof DecisionPoller)) {
      return new DecisionPoller(name, domain, options);
    }
  
    if (!_.isString(name)) {
      throw new Error('A `name` is required');
    }
  
    if (!_.isString(domain)) {
      throw new Error('A `domain` is required');
    }
  
    this.name = name;
    this.domain = domain;
    this.options = options || {};
  
    // Make sure taskList is an object of { name: '' }
    if (this.options.taskList && _.isString(this.options.taskList)) {
      this.options.taskList = { name: this.options.taskList };
    }
  
    // Set default taskList if not defined
    if (!this.options.taskList) {
      this.options.taskList = { name: this.name + '-tasklist' };
    }
  
    /** @private */
    this._registrations = [];
    this._workflows = [];
    this._poller = undefined;
  }
docs: Represents a single, named decision poller, where all workflow versions can be created. Tasks will automaticly be
  routed to the first workflow that satisfies the version requested. If no valid workflow is found, the task will
  be marked as a failure.
  
  @constructor
  @param {string} name - The name of the workflow.
  @param {string} domain - The AWS SWF domain name to use when listening for decision tasks.
  @param {object} [options] - Additional SWF options used when creating and executing this workflow
  (taskList, tagList, childPolicy, executionStartToCloseTimeout, taskStartToCloseTimeout)