After discussing how to release a Platform as a Product, in this post we provide you with a practical guide to understanding golden paths. To clarify the concept of golden paths, let's explore an example of building a golden path to introduce relational databases as a new capability in the platform.

Understanding the Scenario

A Microservices Adoption Nightmare

Your organization embarked on a modernization initiative aimed at boosting two critical dimensions: delivery velocity and scalability. The CTO identified microservices architecture as the core driver for achieving these business objectives.

As part of this initiative, development teams were given full responsibility for their technical stack, empowered by a DevOps approach and one of the core principles of microservices: the ability to select the best technology for their specific service use case.

Initially, this approach seemed ideal. Development teams began releasing features using various programming languages and selecting different datastores for their microservices.
While many teams relied on Postgres for relational use cases and Redis as a key-value store, other teams started adopting technologies such as DuckDB, MySQL, MongoDB, and ElasticSearch.

Microservices architecture: client, microservice, database.

The Seemingly Right Path for Microservices Architecture

The Unintended Consequences

However, what initially seemed like the right path quickly led to a technology sprawl that became the root cause of several critical issues:

Negative Outcomes

Instead of achieving the intended goals of increased delivery velocity and scalability, the organization faced several setbacks:

Platform Engineering to the Rescue

Faced with these challenges, the organization recognized the need to standardize and reduce technology sprawl. Regarding datastores, the decision was made that any operational service requiring a relational datastore must use Postgres.

Initially, the idea was to create a cross-functional DevOps team to centralize the deployment of these common services.

However, the CTO soon realized that the issue was not just about managing individual technical components. Instead, it was about understanding the role of a relational database within the broader organizational architecture.

Key Insights from the CTO:

Platform Engineering should encompass the entire end-to-end value chain to effectively deliver products and applications to end users. A relational database capability in your platform is not just about offering a Database as a Service (DBaaS); it’s about understanding the role of the relational database within your architecture and the business value it provides.

Recognizing these insights, the CTO launched a Platform Engineering initiative to address the organization’s challenges.

As part of this initiative, the Platform Team assumed responsibility for making the "relational datastore" capability available as part of the Internal Developer Platform (IDP).

The goal is to provide development teams with a golden path that allows them to efficiently leverage this capability, reducing complexity and driving standardization across the organization.

Thinking of Relational Databases as a Golden Path

Databases in Operational Services

A key principle of microservices architecture is that each service manages its own data. Services should not share a datastore to avoid unintentional coupling, which could result in dependencies that hinder independent deployments and scalability.

The Shared Database Anti-pattern

This best practice necessitates the ability for development teams to spin up databases quickly and easily, while ensuring compliance with security and deployment requirements.

But deploying a “production-ready” Postgres database is a complex endeavor, involving decisions related to security, deployment, availability, backups, and secrets, among others.

The golden path for relational databases does not have to expose all these elements for developer teams, otherwise their cognitive load will increase, but must take care of these needs to ensure that this is the paved road to production.

The relational database golden path must encapsulate all the operational decisions made at your company to transform an “out of the box” postgres into the specific set of configuration and decisions to run a relational database in your organization.

What Developer Teams Actually Need from the Platform

Developers don’t need to manage the full complexity of setting up and maintaining relational databases. Instead, they should only need to configure elements that directly influence the development process, such as:

The platform, in turn, provides a connection string to the database, allowing the service to operate smoothly within the organization’s compliance framework. This setup abstracts the complexity away from the developers, enabling them to focus on building features rather than managing infrastructure.

Simplifying Configuration with High-Level Attributes

Given the elements that developers need to configure, there’s an opportunity to simplify the process even further. The platform team can design high-level attributes for the capability that are then translated into the necessary low-level configurations.

The platform team could take three attributes:

And encapsulate them into a single high-level attribute called SIZE.

This attribute could use values like SMALL, MEDIUM, LARGE, EXTRA-LARGE, which the golden path would then translate into the appropriate configurations for computing power, storage capacity, and number of instances.

Benefits of This Approach

Golden paths provide a means to reduce cognitive load in various ways, preserving the ability to make low-level decisions when necessary while streamlining the overall configuration process.

By offering these high-level abstractions, the platform enables developers to focus on what they do best—delivering business value—while maintaining the flexibility to adapt to different environments and requirements.

What is the Actual Role of the Relational Database in your Architecture

The platform team needs to grasp the intended use and expected outcomes of that database within the broader architectural context. For example:

By understanding the specific purpose and mission of these technical requirements, the platform team can create more useful golden paths. This approach allows the team to better encapsulate the cognitive load for development teams, increasing the platform’s value and enhancing its mission.

Aligning the relational database capabilities with the broader business objectives ensures that the platform not only meets technical requirements but also delivers measurable business outcomes. This strategic alignment is crucial for demonstrating the value of Platform Engineering to the wider organization.

A New Collaboration Model Converging in the Platform Team

Golden Paths can benefit multiple personas within your organization and must be designed considering not only the feedback from different teams but also their actual needs.

Introducing new capabilities, such as relational databases, into the platform requires therefore a new collaboration model:

Golden paths are the center of this relationship, as depicted in the following diagram with a sample approach for a relational database golden path:

sample approach for a relational database golden path

Continuous feedback loops from development, operations, and architecture teams are vital in ensuring that the relational database capabilities evolve in response to changing business needs and technological advancements. This ongoing dialogue helps maintain the platform’s relevance and effectiveness.

Golden Paths and Abstraction Levels

Platforms should be composable, offering different levels of abstraction to empower flexibility and reusability:

This composability maximizes platform adoption by allowing teams to choose the appropriate level of abstraction without deviating from the platform’s established standards and paved road.

As technology evolves, the platform should be flexible enough to accommodate future architectural changes or the adoption of new database technologies. This flexibility ensures that the platform remains a valuable asset to the organization over time.

If you’re interested in Platform Engineering and want to keep diving deeper into this topic, here’s some content you might find interesting:

Tell us what you think.

Comments are moderated and will only be visible if they add to the discussion in a constructive way. If you disagree with a point, please, be polite.

Subscribe