Deep-dive on the Next Gen Platform. Join the Webinar!

Skip Navigation
Show nav
Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
Hide categories

Categories

  • Heroku Architecture
    • Compute (Dynos)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Developer Tools
    • Command Line
    • Heroku VS Code Extension
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery & Integration (Heroku Flow)
    • Continuous Integration
  • Language Support
    • Node.js
      • Working with Node.js
      • Troubleshooting Node.js Apps
      • Node.js Behavior in Heroku
    • Ruby
      • Rails Support
      • Working with Bundler
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Background Jobs in Python
      • Python Behavior in Heroku
      • Working with Django
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Working with Maven
      • Working with Spring Boot
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
      • Migrating to Heroku Postgres
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • Other Data Stores
  • AI
    • Working with AI
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
      • Single Sign-on (SSO)
    • Private Spaces
      • Infrastructure Networking
    • Compliance
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Heroku Architecture
  • Compute (Dynos)
  • Dyno Concepts
  • Dyno Runtimes

Dyno Runtimes

English — 日本語に切り替える

Last updated February 28, 2025

Table of Contents

  • Common Runtime
  • Private Spaces Runtime
  • Choosing a Dyno Runtime For Your App

The dyno runtime is a central component of Heroku that is responsible for running your app’s dynos. A dyno runtime is responsible for:

  • Provisioning dynos (secure, isolated containers for running your app’s code).
  • Managing and monitoring the lifecycle of each dyno.
  • Adding and removing dynos when the scaling configuration of the app changes.
  • Providing proper network configuration so dynos can make network requests to attached add-on services and other external endpoints.
  • Receiving web traffic on an application’s domain and routing it to web dynos.
  • Capturing log output from each dyno and forwarding it to the application’s log drains.

Heroku has different runtimes, with the main differences being the network topology and level of isolation. See the certifications for these runtimes in the table here.

Compliance certifications for the Fir Private Spaces Runtime are pending.

Common Runtime

The Common Runtime runs and manages dynos in a single multi-tenant network per region. Two regions are available, US and EU. Each dyno is secured with strong firewall rules so even though all dynos run in a single, flat network, they are strongly isolated from each other. See the certifications for this runtime in the table here.

Dynos in the Common Runtime can only receive connections from the routing layer, which is responsible for correctly and securely forwarding inbound web requests to dynos. Only web dynos can receive connections in this way.

Private Spaces Runtime

Heroku has two generations of the Private Spaces Runtime: Cedar and Fir.

Cedar Private Spaces Runtime

The Cedar-generation of the Private Spaces Runtime allows you to create applications in one or more Cedar Private Spaces. Each space has its own network, routing layer, and control plane that aren’t shared with other applications outside the space. See the certifications for this runtime in the table here.

The isolation and network topology of this runtime offers several additional benefits, compared to the Common Runtime:

  • You can restrict access to all applications in a space to a set of trusted IP ranges.
  • All requests made by apps originate from a set of stable outbound IP addresses allowing you to use IP allowlists to secure access to various backend services such as an on-premise web service gateway.
  • Dynos within a space can communicate directly with each other over a private network.
  • Dynos within a space can communicate directly over a private network with certain types of add-on resources such as Heroku Postgres and Heroku Key-Value Store (KVS). A database or KVS instance created in a space can’t be accessed directly over the public internet.
  • The strong isolation allows applications to meet compliance requirements above and beyond what is possible in the Common Runtime.

Fir Private Spaces Runtime

The Fir-generation of the Private Spaces Runtime allows you to create applications in one or more Fir Private Spaces. Similar to a Cedar Private Space, a Fir Private Space has its own dedicated networking, routing, and control plane layers that aren’t shared with apps outside of the space.

Fir-generation runtime offers additional benefits compared to Cedar:

  • More flexible and smaller minimum dyno sizes and tiers
  • Improved dyno boot times
  • Improved dyno scale limits
  • App builds occur within the app’s space
  • ARM-based dynos highly optimized for parallel processing and power efficiency, resulting in better price-to-performance ratios for certain workloads
  • Ability to build source code into container images with Cloud Native Buildpacks
  • Simplified application observability by integrating with OpenTelemetry directly, a streamlined way to collect and export telemetry data without extensive configuration. Apps in a Fir Private Space support OpenTelemetry’s logs, traces, and metrics signals out of the box.

Compliance certifications for the Fir Private Spaces Runtime are pending. Customizing Trusted IPs and internal routing currently unavailable for Fir spaces. Subscribe to our changelog to stay informed on when we add features to Fir.

Choosing a Dyno Runtime For Your App

The runtime for an app is set at creation time. The Common Runtime is the default.

To use the Cedar or Fir Private Spaces Runtime instead, see the Heroku Private Spaces article.

See the Regions article for information about how to set the region for your app.

Keep reading

  • Dyno Concepts

Feedback

Log in to submit feedback.

One-Off Dynos Dyno Tiers

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices