Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • 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
View categories

Categories

  • Heroku Architecture
    • Dynos (app containers)
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Command Line
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery
    • Continuous Integration
  • Language Support
    • Node.js
    • Ruby
      • Working with Bundler
      • Rails Support
    • Python
      • Working with Django
      • Background Jobs in Python
    • Java
      • Working with Maven
      • Java Database Operations
      • Working with the Play Framework
      • Working with Spring Boot
      • Java Advanced Topics
    • PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
    • Heroku Redis
    • Apache Kafka on Heroku
    • Other Data Stores
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
    • Compliance
  • Heroku Enterprise
    • Private Spaces
      • Infrastructure Networking
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
    • Single Sign-on (SSO)
  • 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
  • Extending Heroku
  • Building Add-ons
  • Add-on Guidelines & Requirements
  • Add-on Performance Expectations

Add-on Performance Expectations

English — 日本語に切り替える

Last updated July 13, 2020

Table of Contents

  • Stability
  • Latency

Stability

Reliable and transparent operation is key to the success of any cloud service, including those powering Heroku add-ons. That said, any service will occasionally experience operational issues that affect customers. Acting and communicating appropriately around such events is critical to emerging with the customer’s trust and patronage intact.

Status page

Maintaining a service status page or blog is a simple way to inform users of any operational issues that could affect their usage. Having an always-up-to-date status provides a great starting point for any customer experience a problem, and can alleviate unnecessary load on your team in situations where all hands are required to fix a problem.

Scheduled maintenance

Always provide advance notice on any scheduled maintenance that will affect the operation of your service. In general, 24 hours is the least notice you should give your customers. You should both post the maintenance notice on your status page, and also notify users by email.

Interruptions and downtime

Unexpected downtime happens. When it does, it’s critical that you:

  • Acknowledge the problem as soon as you know of it. Use the status page and email notifications.
  • Restore service as quickly as possible, and notify using the same channels.
  • Provide a post-mortem analysis explaining what went wrong, and what is being done to prevent a similar outage in the future.

Latency

Heroku is available in multiple geographic regions. As an add-on partner, your service may need to work under low-latency conditions, in which case it should be available in the same region as the app provisioning it. Read the Add-on Partner API overview to better understand what is expected of your service.

Latency considerations

Low-latency connections are critical for cloud services built to be consumed in realtime. These include:

  • Databases such MySQL, CouchDB, or Casandra
  • Cache stores such as Memcache
  • Search services such as Websolr or Cloudquery

On the other hand, many services can tolerate an extra few hundred milliseconds of latency. Usually these are asynchronous services. For example:

  • Email sending services such as Sendgrid and Authsmtp
  • Outbound message services such as Messagepub or Chatterous
  • Monitoring services like New Relic, Exceptional, or Airbrake
  • DNS management services such as Zerigo DNS

Provisioning with latency

If your add-on service requires low latency then you should provision resources for Heroku apps within the same region as specified in the provision request region attribute.

If your add-on is latency sensitive and does not support that region, you should not provision the resource and instead return an error.

If normal internet latency is acceptable, you can run your service anywhere with a public hostname/IP.

Keep reading

  • Add-on Guidelines & Requirements

Feedback

Log in to submit feedback.

The Add-on Ownership Model and User Authentication Guidelines for Add-on Partners Add-on Support

Information & Support

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

Language Reference

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

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies