Building a SaaS product, a system to handle sensor data from an internet-connected thermostat or car, or an e-commerce store often requires handling a large stream of product usage data, or events. Managing event streams lets you view, in near real-time, how users are interacting with your SaaS app or the products on your e-commerce store; this is interesting because it lets you spot anomalies and get immediate data-driven feedback on new features. While this type of stream visualization is useful to a point, pushing events into a data warehouse lets you ask deeper questions using SQL.

In this post, we’ll show you how to build a system using Apache Kafka on Heroku to manage and visualize...


We are happy to announce two major improvements to our SSO experience for Heroku Enterprise customers: easier SSO login for users via the Heroku CLI, and the ability for admins to add more than one certificate at the Enterprise Team level.

Logging into all your different cloud applications can be a pain. We know that many of you like to use Heroku via the command line interface and in your web browser side-by-side, and until now that has meant logging in via SSO separately to each interface. You'll now be redirected from the CLI to the Dashboard to complete your SSO login to Heroku, after which your SSO credentials will be synced.

We've also made the administrative experience for...


Last October, we announced the ability for you to deploy pre-built Docker images to Heroku via Container Registry. Today, building Docker images with heroku.yml is generally available; you can now:

  • Use git push heroku master to build your Docker images on Heroku
  • Take advantage of review apps in Docker-based projects

For most teams, using containers in production requires you to spend time setting up and maintaining complex infrastructure. By using heroku.yml to build your Docker images, you get the power and flexibility of using Docker to package your app, combined with Heroku’s high-productivity developer experience, container orchestration, an add-ons ecosystem, and managed...


Rails applications that use ActiveRecord objects in their cache may experience an issue where the entries cannot be invalidated if all of these conditions are true:

  1. They are using Rails 5.2+
  2. They have configured config.active_record.cache_versioning = true
  3. They are using a cache that is not maintained by Rails, such as dalli_store (2.7.8 or prior)

In this post, we discuss the background to a change in the way that cache keys work with Rails, why this change introduced an API incompatibility with 3rd party cache stores, and finally how you can find out if your app is at risk and how to fix it.

Even if you're not at Rails 5.2 yet, you'll likely get there one day. It's...


Yesterday we announced a major step towards making buildpacks a multi-platform, open standard by contributing to Cloud Native Buildpacks, a Sandbox Project hosted by the Cloud Native Computing Foundation. Today, we are announcing that you can now easily share your buildpacks with the world, by registering them with the Heroku Buildpack Registry.

As of this post, the Buildpack Registry contains over 100 buildpacks created by authors like you. Because of your contributions, Heroku developers can easily use languages and frameworks like Meteor, Elixir, and React in their applications. If you’ve created a custom buildpack and wish to share it with the community, visit Dev Center to learn...


Browse the blog archives or subscribe to the full-text feed.