

In addition to Postgres and the add-ons in the Elements Marketplace, Heroku offers official integrations with Redis and Kafka. Heroku Postgres has a feature called rollback, which acts like a time machine for the database, allowing a developer to “roll back” the database to a previous point in time without affecting the present state of the database. A Heroku Postgres database can be shared between several applications by a simple set of commands from the CLI. Heroku Postgres allows users to manage schema migrations, database access controls, and scaling from the Heroku platform. Heroku adopted Postgres in 2007, and it continues to be the most popular data storage offering on the platform. PostgreSQL is an open-source relational database management system (RDBMS) that has been widely adopted since its release in 1996 due to its support for a wide variety of data types, its ACID-compliant transactions, and its use of write-ahead logging to increase fault tolerance. Heroku’s flagship data management offering is Heroku Postgres. In addition, the Heroku Elements Marketplace contains dozens of add-ons available to developers using Heroku’s platform-as-a-service offering. Heroku provides several managed data resources, including PostgreSQL, Redis, and Kafka. Users of web applications expect fast, accurate rendering of the data they expect to see. This is especially important for services such as attached databases, which provide critical data such as user account information. The principle of “loose coupling” of backing services comes with an implicit contract- that the increased flexibility will not create a trade-off in availability or durability.


Metabase heroku code#
One critical element of 12-Factor Web Apps is so-called “backing services ” that is, “any service the app consumes over the network as part of its normal operation.” Best practices dictate that these backing services- including databases- should be treated as “attached resources,” and an app’s code should be agnostic to whether the resource is accessed locally or over a network. Heroku is a strong proponent of 12-Factor Web App best principles, and the 12-Factor “manifesto” was written by Heroku engineers. Heroku is a “Platform-as-a-Service” provider that builds upon the infrastructure of Layer 1 Cloud Providers, such as AWS, to create a streamlined, developer-first platform for the deployment and management of 12-Factor Web Apps. Heroku was the first, and remains the most prominent, Layer 2 Cloud Provider. Increasing demands for interactivity and a customized UX, along with a broadened horizon of what a website could or should do, meant that persistent data storage was more and more critical to a web application’s engineering. Today, single-page applications (SPAs) such as Gmail provide a dynamic user experience by interacting with the server to rewrite individual components of a page. Since the introduction of frameworks such as JavaScript in the late 1990s, developers have demanded more functionality from their web-based programs than traditional “static” websites could provide. Nearly all modern web applications depend on persisted data in order to function.
