Shuffle vs StackStorm

Shuffle is a security-first SOAR platform under AGPL-3.0, while StackStorm is an Apache-2.0 event-driven automation engine often used for infrastructure auto-remediation. The right choice depends on who owns the playbooks and where they run.

On this page

Shuffle vs StackStorm: when each one fits a security automation roadmap

Your security team wants SOAR playbooks that enrich alerts and drive response, while your operations team wants event-driven remediation that restarts services, rolls back deployments and runs changes on infrastructure. Shuffle fits security-led case enrichment and response, and StackStorm fits infrastructure remediation and continuous deployment. The decision is less about features than about who will write, approve, run and be paged for the automation.

Start with four questions. First, who owns the automation: analysts who build playbooks in a visual editor, or engineers who keep rules and workflows as code in packs. Second, the integration model: Shuffle builds apps from OpenAPI specifications in its App Creator or with the Python app SDK, and StackStorm uses sensors that watch external systems and actions that call them, organized into packs. Third, identity and RBAC: Shuffle added SAML and OpenID Connect single sign-on, while StackStorm open source includes role-based access control and role assignment from LDAP group membership, so confirm which controls your auditors expect on each. Fourth, high availability: Shuffle recommends an OpenSearch cluster and more than one Orborus node, while StackStorm's Kubernetes HA chart is a beta blueprint, so confirm its maturity before you rely on it.

Run a short proof of concept with one real use case from each team, such as phishing triage on one side and automated rollback on the other. Record who maintained each workflow after week one, which identities and secrets each platform needed, and what broke during a failover test. Ask any vendor or integrator to show those results in your environment, and confirm the current release and license terms directly on the Shuffle GitHub releases page and the StackStorm releases page before you commit.

Which platform fits which scenario

This table maps common Shuffle vs StackStorm scenarios to the platform that usually fits better and the condition that decides it. Read each row as a starting point: the condition column tells you what to verify in your own environment before committing.

ScenarioBetter fitCondition that drives the choice
SOC playbook automation over SIEM and ticketing alertsShuffleYour analysts need a security app catalog built around alert enrichment and case actions, and the apps you need exist or can be generated from OpenAPI specifications in the App Creator.
Infrastructure auto-remediation (restart services, roll back configs)StackStormYour triggers come from infrastructure sensors and your actions are SSH, HTTP or configuration tooling, which StackStorm packs are designed to cover.
Mixed security and operations team sharing one automation layerStackStormOps engineers already write rules, packs and workflows as code and need one event model for both security and infrastructure events. Confirm the pack maturity you need on the StackStorm Exchange.
LDAP-driven access control for analystsNeeds confirmation for bothStackStorm open source lists role assignment from LDAP group membership under RBAC since version 3.4. Shuffle SSO is documented as SAML or OpenID Connect, so confirm whether LDAP-backed group mapping meets your requirement in each product.
Kubernetes with high availabilityNeeds confirmation for bothShuffle documents a Kubernetes deployment with Helm charts and recommends an OpenSearch cluster and several Orborus nodes. StackStorm documents an HA Helm chart as a beta blueprint. Ask vendors to confirm production readiness for your cluster design.
Team that needs a security-first audit trail of automated actionsShuffleYour reviewers need execution records tied to security workflows and case context. StackStorm records an audit trail of executions and can ship it to Splunk, LogStash, statsd or syslog, so compare how each fits your existing log pipeline.
Team that already runs StackStorm or wants code-first pack managementStackStormYour change control expects content stored as code, deployed in packs and shared through the StackStorm Exchange. Existing investment in pack development is the main reason to stay.
Hybrid deployment with workers on-premises and a managed control planeShuffleYou want a cloud-hosted control plane with a local Orborus runner that needs no inbound firewall ports. Confirm whether your data residency rules allow Shuffle Cloud before choosing this path.

How Shuffle and StackStorm are built and deployed

Both platforms split control from execution, but they do it differently. Shuffle centers on a frontend, a Go backend, OpenSearch and Orborus workers, while StackStorm runs as a set of microservices on a message bus backed by MongoDB and RabbitMQ. The cards below cover what each component does and what the choice means for operating the platform over time.

Shuffle's core components

Shuffle runs a frontend, a Go backend API on port 5001 and an OpenSearch document database for its server side. Orborus sits on the runtime side, polls the backend for jobs and starts a worker for each workflow execution, and that worker starts the app containers. Day to day, your team operates two layers: the server and the execution fleet. Check that your monitoring covers both, because a healthy UI does not prove that executions are being picked up.

StackStorm's microservice model

StackStorm is built from loosely coupled microservices that talk over a message bus and scale horizontally. Its REST API, CLI and web UI all sit on top of that service layer. The practical question for your team is who will own the bus, the database and each service process, and how upgrades roll across them. Ask for the component list and the upgrade order for the version you plan to run before you commit.

Data stores and messaging

Shuffle keeps workflow and credential data in OpenSearch, so the search cluster is a core dependency and needs its own capacity and backup plan. StackStorm uses MongoDB for storage and RabbitMQ for messaging, which means two separate stateful systems to run. Both choices change your backup scope and your restore testing. Confirm which data is needed for a full recovery on each platform, including the secrets key on the Shuffle side.

Shuffle's four deployment architectures

Shuffle documents a single server with Docker Compose, distributed Docker Swarm, a hybrid model with Shuffle Cloud and a local Orborus, and Kubernetes with Helm charts. The hybrid option needs no inbound firewall ports on the local runner, which can matter for networks with strict ingress rules. Choose the model that matches your network zones and your team's container skills, and confirm with Shuffle which features each model supports before rollout.

Shuffle high availability requirements

Shuffle's high availability guidance calls for an OpenSearch cluster, optional Memcached for a shared cache, NFS for shared files when several backends run, and more than one Orborus node so workflows continue if one fails. That is several shared services to build and monitor before the automation itself is reliable. Ask your team who will own NFS and OpenSearch uptime, and test failover of an Orborus node with a live workflow.

StackStorm Kubernetes HA beta

StackStorm offers a Helm chart for an HA cluster on Kubernetes, but it is a beta blueprint rather than a finished production path. Treat it as a starting point that your platform team validates, not a supported guarantee. If you need HA on Kubernetes, plan for your own testing of failover, upgrades and MongoDB and RabbitMQ recovery, and confirm with the StackStorm project what is supported for your release.

Side-by-side capability comparison

This table compares how Shuffle and StackStorm handle licensing, integration, access control, audit, data stores and high availability. Read each row against your own use case, since a row that favors one platform matters only if the condition in the cell applies to your team.

CapabilityShuffleStackStorm open source
LicenseAGPL-3.0 for the code; workflows and modular app content are MIT. Confirm what AGPL obligations mean for your distribution and hosting model with counsel.Apache-2.0 for the project. Confirm the license of any third-party packs you install from the Exchange before deployment.
Integration modelApps built from OpenAPI specifications in the App Creator or written in Python with the Shuffle app SDK, run as versioned Docker containers.Sensors (Python plugins that watch external systems and fire triggers), actions and rules, deployed as packs stored as code.
Content ecosystemSecurity-focused app catalog and modular app content. Confirm that the apps you need exist and are maintained for your target systems.About 160 integration packs with more than 6,000 actions, according to the repository description. Confirm pack quality and maintenance for each pack you depend on.
RBAC in open sourceConfirm the role model you need against Shuffle's current documentation, since the supplied facts do not describe Shuffle RBAC.Role-based access control is available in open source since version 3.4, including role assignment from LDAP group membership.
LDAPNot described in the supplied facts. Confirm directory integration with your Shuffle version before planning.LDAP group membership can drive role assignment in open source. Confirm how group mappings behave in your environment.
SSO optionsSAML (added in 0.9.16) and OpenID Connect (added in 1.0.0), with per-tenant SSO enforcement. SAML is being deprecated on Shuffle Cloud in favor of OpenID Connect.Confirm the SSO options available in your StackStorm release. The supplied facts cover LDAP-based role assignment, not SAML or OpenID Connect.
Audit trailConfirm which execution and configuration events Shuffle records and where they are stored for your retention needs.Records an audit trail of every manual or automated action execution and can ship it to LogStash, Splunk, statsd or syslog.
Data storesOpenSearch document database for the server side, with saved app credentials encrypted with AES-256 using SHUFFLE_ENCRYPTION_MODIFIER.MongoDB for storage and RabbitMQ for messaging across loosely coupled microservices.
High availability guidanceRecommends an OpenSearch cluster, optional Memcached, NFS for shared files across backends, and more than one Orborus node. Kubernetes uses Helm charts.Scales horizontally through microservices. A Helm chart for an HA cluster on Kubernetes is a beta blueprint. Confirm its support status before production use.

What each license allows and what is paid for

Shuffle's code is licensed under AGPL-3.0, while its workflows and modular app content are MIT. The AGPL matters most when you modify the Shuffle code and make that modified version available to others, including users reaching it over a network. Internal use and internal changes are the common case for security teams, but the exact obligations depend on how you deploy and whether anyone outside your organization interacts with the modified service. Shuffle states that all features are available in the open-source edition, and that its paid tiers differ in feature limits, scaling and support. Since v2.1.1 those limits are enforced, and licensing is priced on app runs, meaning actions that actually execute in a workflow. Triggers and skipped actions are not counted, and users, apps and workflows are unlimited.

  • Code license: AGPL-3.0 applies to the Shuffle platform itself.
  • Content license: Workflows and modular app content are MIT, which is more permissive for reuse.
  • Feature set: All features are documented as available in the open-source edition.
  • Paid limits: Since v2.1.1, limits between the open-source and enterprise editions are enforced, covering scaling, support and feature caps.
  • Pricing metric: Paid licensing is based on app runs, not users, apps or workflows.

Confirm with your counsel how AGPL obligations apply to your planned internal changes and any hosted service you offer, and confirm current enforced limits in Shuffle's pricing and configuration documents.

How integrations get built: OpenAPI apps versus sensors and packs

The main difference in extending these platforms is the unit of work. In Shuffle, an integration is an app: a versioned Docker container built either in the App Creator from an OpenAPI specification or written in Python with the Shuffle app SDK. In StackStorm, an integration is a set of sensors, which are Python plugins that watch an external system and fire triggers, plus actions that call outbound systems such as SSH, HTTP or Docker. Rules then map triggers to actions or workflows. Shuffle is faster to extend when the vendor publishes a usable OpenAPI specification, because the App Creator can turn that document into callable actions without writing a plugin. Confirm that the spec covers the endpoints and authentication methods you need before you commit to that path.

StackStorm favors teams that already have Python automation. If an ops team has scripts that poll a system, watch a queue or run remediation commands, wrapping them as a sensor and action pack is usually the shorter route, and packs are stored as code and can be shared through the StackStorm Exchange, which the repository describes as holding about 160 integration packs. Review any community pack before use, since its quality, maintenance status and license are set by its author, not by the StackStorm project. Ask your team which of the two existing assets, OpenAPI specs or Python scripts, is more common in your environment, because that answer predicts the effort of the first integration more reliably than any feature list.

Plan for ongoing ownership in both models. Shuffle app versions and any credentials stored for them are tied to the platform's encryption secret, so changes to app code or secrets need a documented release process. In StackStorm, packs are versioned code that your team must test and upgrade alongside the st2 release you run. Whichever model you choose, ask each vendor or internal owner who maintains the integration after the first deployment, and whether that maintenance is in your budget.

Moving playbooks from StackStorm to Shuffle, or the reverse

This sequence turns StackStorm rules, actions and packs into a tested Shuffle deployment, or the reverse, without losing track of credentials, access controls or audit history. The output is a parallel run that shows matching results before any production traffic moves.

  1. Inventory rules, workflows and packs

    The platform owner lists every StackStorm rule, workflow, action, sensor and pack in use, along with the trigger that starts each one and the systems it touches. Each item is tagged by business owner and by how often it runs. The inventory is complete when every production rule maps to a named owner and a named target system, and nothing is left as an unexplained script on a host.

  2. Map each integration to a Shuffle app

    The integration engineer checks each StackStorm action pack against the Shuffle app catalog and the App Creator, which builds apps from OpenAPI specifications, or against a Python app written with the Shuffle app SDK. Integrations with no existing app are scoped as new builds. Logic that is pure Python or shell is re-expressed as Shuffle workflow steps, not copied. The mapping is done when each integration has a documented app, an owner and a test target.

  3. Rebuild workflows and triggers in Shuffle

    The automation engineer recreates each StackStorm rule and workflow as a Shuffle workflow, wiring the triggers that replace StackStorm sensors. Input and output fields are checked against the source. StackStorm YAML and pack code do not convert automatically, so every step is rebuilt and reviewed by a second engineer. The output is a workflow list where each entry links back to its inventory record.

  4. Re-enter credentials under the encryption secret

    The security engineer moves each StackStorm secret, API key and service account into Shuffle's app authentication fields. Shuffle encrypts saved app credentials in OpenSearch with AES-256 using the SHUFFLE_ENCRYPTION_MODIFIER secret, and the configuration docs warn that losing or changing that secret breaks every saved app authentication. Set and back up the secret before the first credential is saved. The step is complete when each integration authenticates in a test run and the secret is stored outside the platform.

  5. Rebuild RBAC and single sign-on

    The identity administrator maps StackStorm RBAC roles, including any assignments that came from LDAP group membership, to Shuffle's access model and configures SSO through OpenID Connect or SAML. StackStorm role assignments do not carry over, so each role is defined again and tested with a sample user. Confirm the SSO method your Shuffle edition supports, since the extensions docs note SAML is being deprecated on Shuffle Cloud. The step is complete when each role can perform only its allowed actions.

  6. Run both platforms in parallel

    The operations team runs the rebuilt Shuffle workflows alongside the live StackStorm rules, with Shuffle in read-only or test mode for any action that changes a system. Outputs, timings and failures are compared for the same trigger events. Audit trails are checked on both sides, since StackStorm can ship its execution record to LogStash, Splunk, statsd or syslog. The step closes when each workflow shows matching outcomes over the agreed observation window.

  7. Cut over and retire StackStorm rules

    The platform owner switches each rule to Shuffle in the order of the inventory, starting with the lowest-impact workflows. The StackStorm rule is disabled, not deleted, so it can be restored quickly. After cutover, the on-call team confirms that alerts and remediation actions run as expected. Retirement is done only when the rollback path has been tested and the inventory shows every workflow with a live owner in Shuffle.

  8. Confirm items that do not transfer

    Before sign-off, the project lead records what did not move automatically: custom Python code in packs, MongoDB stored state, StackStorm Exchange packs, scheduled jobs and HA layout. Each gap is confirmed with the vendor or in your own environment, and the reverse direction is tested with the same checklist. The sign-off record lists each gap, its owner and its resolution.

What drives running cost for each platform

Running cost for Shuffle and StackStorm comes from the same places: the services you host, the people who operate and extend them, and the vendor or community support you buy. The cards below separate what is one-time from what recurs, and list what to request in a written quote before you compare totals.

Shuffle infrastructure footprint

Shuffle's server side runs a frontend, a Go backend API and an OpenSearch document database, and its runtime side adds Orborus nodes that start a worker for each execution. The Shuffle HA guidance calls for an OpenSearch cluster, shared files over NFS when several backends run, and more than one Orborus node. Ask the vendor or your own architect to size the cluster and worker nodes for your expected execution volume, and price each host and storage tier separately.

StackStorm infrastructure footprint

StackStorm is built from loosely coupled microservices that talk over a message bus, and its services depend on MongoDB for storage and RabbitMQ for messaging. The HA path on Kubernetes uses a Helm chart that is still a beta blueprint, so your team may own more of the cluster design and testing. Count the database, message bus and each service replica as separate components when you compare hosting costs, and confirm which of them your operating model must support.

Skills to run and extend

Shuffle apps come from OpenAPI specifications in the App Creator or from Python code written with the app SDK, and StackStorm integrations come from Python sensors, actions and packs stored as code. Both platforms therefore need people who can maintain integration code, but the StackStorm side leans more on Python and configuration as code. Ask who writes and reviews each integration, and whether the cost of that work is inside the quote or billed separately.

Shuffle licensing and app-run metering

Shuffle says all features are available in the open-source edition, and its paid tiers differ in feature limits, scaling and support. Its paid licensing is priced on app runs, meaning actions that actually execute, while triggers and skipped actions are not counted. Since v2.1.1 those limits are enforced. Ask for your projected app-run volume in writing, and for the exact limit each tier enforces, before you assume the open-source edition covers your load.

Support and paid options

StackStorm is Apache-2.0 and its open-source edition includes role-based access control, so a commercial support contract is a separate decision from the software licence. Shuffle's paid tiers add support and onboarding alongside scaling limits. Whether support is bought from the vendors or from a third party, the quote should state response expectations in writing, the escalation path and what happens to fixes for the version you run.

Upgrades and integration maintenance

Every SOAR platform needs upgrades, and every integration you depend on needs maintenance when a vendor API changes. Shuffle's Docker tags move with releases, and the docs suggest the nightly tag only for experimental changes. StackStorm packs are versioned code that your team pins and tests. Estimate upgrade cycles, the test environment and the regression suite your team will own, then ask the implementation partner to state which of those tasks are fixed scope and which are retainer work.

Where implementation projects usually run long

Implementation projects for either platform run long at the identity and credential layers, not at the first workflow. On Shuffle, SSO is configured per deployment: SAML was added in 0.9.16 and OpenID Connect in 1.0.0, and per-tenant SSO enforcement is available on-premises and in the cloud. On StackStorm open source, role-based access control arrived in version 3.4, and role assignment from LDAP group membership is part of that release. Before work starts, confirm which directory groups map to which roles, who approves that mapping, and how group changes are re-tested. Shuffle encrypts saved app credentials in OpenSearch with AES-256 using the SHUFFLE_ENCRYPTION_MODIFIER secret, and losing or changing that value breaks every saved app authentication. Put its custody and rotation procedure in the written scope, because StackStorm's secret handling for pack configuration needs the same review.

The high availability design is the second common source of slippage. Shuffle's configuration docs recommend an OpenSearch cluster, optional Memcached, NFS for shared files when several backends run, and more than one Orborus node so workflows survive a node failure. StackStorm services depend on MongoDB and RabbitMQ, and its Kubernetes HA helm chart is a beta blueprint, so the team should plan to validate it rather than assume it is production-ready. Ask for a written list of which stateful services are in scope, who operates backups and restores for each, and what failover test will be run before cutover.

Integration work is usually where estimates are least reliable. Shuffle builds apps from OpenAPI specifications in the App Creator or in Python with the app SDK, and StackStorm integrates through Python sensors and actions packaged in packs. Each vendor API that a team needs to automate, plus its authentication model and rate limits, should be listed as a line item with an owner. A practical check is to run one representative response-action end to end in a non-production tenant before agreeing on the rest. DeployOpen scopes these items, deliverables and timelines in writing before work starts, so the list of integrations, test cases and handover documents should be part of that agreement.

Questions buyers ask before choosing or hiring help

How much effort does each platform need to run day to day?

Shuffle and StackStorm both run as several cooperating services, so the day-to-day load depends on how many components your team must patch, back up and monitor. Shuffle's server side uses a frontend, a Go backend and OpenSearch, and its runtime uses Orborus workers that start app containers. StackStorm is built from microservices that depend on MongoDB and RabbitMQ. Count the data stores, message buses and container runtimes each option adds to your patching cycle, then confirm the upgrade path for your chosen versions with each vendor before committing.

Can a small team operate StackStorm or Shuffle alone?

A small team can run a single-server Shuffle deployment with Docker Compose if it already operates Docker and OpenSearch, but high availability adds moving parts. Shuffle's configuration guidance calls for an OpenSearch cluster, shared files when running several backends, and more than one Orborus node. StackStorm's high availability path uses a Helm chart on Kubernetes that is documented as beta, so a small team should plan for Kubernetes skills and test failover in a staging environment. Ask whether your staff can own the data stores, secrets and upgrades for the full lifetime of the platform.

What drives implementation cost and time?

Implementation cost follows the number of integrations, the amount of custom logic and the number of environments you must build and test. In Shuffle, custom apps can be generated from OpenAPI specifications or written in Python with the app SDK. In StackStorm, sensors, actions, rules and workflows are deployed as packs, so each new source system adds code to write and review. Hosting choice, high availability, SSO and audit log shipping each add work. Ask any provider for a written scope that lists integrations, environments, handover documentation and test cases, because those items set the quote.

What does the work need from our own staff?

Your staff must supply the identity provider details, network access to security tools, decisions on approval workflows and the people who review automated actions. Shuffle needs someone who can manage Docker or Kubernetes and protect the SHUFFLE_ENCRYPTION_MODIFIER secret, because losing or changing it breaks saved app authentications. StackStorm needs engineers comfortable writing Python sensors and YAML rules and managing MongoDB and RabbitMQ. Identify these roles before work starts, since missing owners are a common reason automation projects stall after handover.

Are RBAC and LDAP available in StackStorm open source?

Yes, role-based access control is available in StackStorm open source since version 3.4, according to the StackStorm documentation, and it includes assigning roles from LDAP group membership. Role-based access control was previously part of the enterprise edition and was donated to the Linux Foundation. Confirm that the LDAP group mapping, service account and role model meet your access policy in a test environment, because the mapping details depend on your directory layout.

Do Shuffle's paid tiers change which platform fits?

Shuffle says all features are available in its open-source edition, and its paid tiers differ in feature limits, scaling and support. Since v2.1.1, the limits between the open-source and enterprise editions are enforced, and licensing is based on app runs, meaning actions that actually execute in a workflow. If your plan involves high run volumes, many tenants or formal support, price the licence against your expected run count and ask Shuffle to confirm which limits apply. StackStorm's open-source license is Apache-2.0 with no comparable run metering in the supplied facts, so compare total cost rather than licence fees alone.

When is a consultant worth the cost?

A consultant is worth the cost when the team lacks the time or skills to design, harden and document the platform, or when an audit or incident response deadline makes internal delays expensive. DeployOpen plans, implements, integrates, hardens, backs up and documents self-hosted open-source platforms inside your infrastructure, typically under a fixed scope agreed in writing before work starts. Ongoing support and upgrades are available as retainers. Ask for a written scope listing integrations, environments, handover documents and who owns each component after delivery.

How DeployOpen helps choose, implement or migrate

DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted open-source platforms inside your own infrastructure. For Shuffle vs StackStorm, we start with the response workflows you need automated and the identity and hosting constraints that decide which platform fits, then work through the build in writing.

How we scope

  • Map the remediation and enrichment workflows your team needs, and which ones are security-specific versus general infrastructure actions.
  • Document the identity requirements, including whether SSO or LDAP group-based RBAC is required in the open-source edition you select.
  • Agree the scope, deliverables and timelines in writing before any work starts, as engagements are fixed-scope by default.

How we build

  • Build the chosen platform inside your cloud accounts, data centers or air-gapped network, with the architecture your scale calls for.
  • Integrate your SIEM, ticketing and identity sources, and develop custom integrations or packs for systems the catalog does not cover.
  • Test workflows, credential handling and failover behavior, including the HA components your chosen architecture depends on.

How we hand over

  • Deliver runbooks for backups, secret and encryption key custody, upgrades, and recovery of stored credentials and audit trails.
  • Document each workflow, rule and integration so your team can change automation logic without relying on the original builders.
  • Walk your operators through monitoring, scaling and day-to-day troubleshooting before the engagement closes.

How we support

  • Offer ongoing support, upgrades and continuous testing as a retainer if your team wants external capacity after handover.
  • Review platform release notes against your deployed workflows and integrations, and plan upgrades to reduce breakage.
  • Confirm with the vendor any licensing, edition or feature limit that affects your deployment before committing to a design.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.