In this article, we discuss the importance of backend design for Internal Developer Platforms (IDPs) and explore two common patterns in their architecture: pipeline-based and graph-based backends. The main value drivers of platform engineering are standardization and automation. A well-designed backend should promote standards, manage the entire lifecycle of a resource, be API-first, interpret abstract requests from users to enable golden paths, allow users to leave the path when needed, design for easy integration, ensure security, have a workflow engine built in, and maintainability.
Pipeline-based backends use CI pipelines and IaC but are not ideal for complex business logic in the infrastructure world. They can be difficult to audit and consume with multi-interface approaches. Graph-based backends, such as Platform Orchestrators, provide a dynamic approach by describing dependencies between nodes (resources) based on their edges (dependencies). This allows for easier updates and better standardization compared to pipeline-based designs. However, they may require more time for infrastructure platform engineers to understand the logic and approach.