The Two Dimensions of APAC Platform Engineering in 2026
APAC platform engineering teams in 2026 are solving problems across two distinct dimensions:
The developer experience dimension: How do APAC developers discover services, APIs, infrastructure, and tooling? How do APAC developers scaffold new services correctly? How does the APAC platform team reduce the tribal knowledge and ticket queues that bottleneck engineering at 50-200+ engineers?
The process automation dimension: How does the APAC organization execute long-running business processes (loan approvals, KYC workflows, document processing) that span multiple APAC services and human decisions with auditable execution history and reliable error recovery?
Backstage addresses the developer experience dimension. Camunda and Conductor address the process automation dimension — from different architectural starting points. Understanding when each tool fits determines which APAC platform engineering investment to prioritize.
Backstage: The APAC Internal Developer Portal
What problem Backstage solves at APAC scale
The symptom appears at approximately 50 APAC engineers: platform team Slack channels fill with questions that have answers ("How do I deploy to staging?" "Who owns the APAC payments API?" "Where's the documentation for the logging library?" "How do I add a new APAC service?"). APAC engineers answer the same questions repeatedly. New APAC hires spend weeks learning tribal knowledge that lives nowhere except in senior engineers' heads. Platform teams spend 30-40% of their time on APAC support requests rather than platform improvements.
Backstage is Spotify's answer to this problem: a self-hosted developer portal that catalogs every APAC service, API, infrastructure component, and team in a searchable registry, and provides self-service actions (create a new APAC service, add a feature flag, trigger a deploy) that reduce the platform team ticket queue.
Building the APAC software catalog
The Backstage software catalog is populated by catalog-info.yaml files committed to each APAC repository:
# catalog-info.yaml — committed to apac-payments-service repository
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: apac-payments-service
description: APAC payment processing service for Singapore and Southeast Asia
tags: [apac, payments, fintech, singapore]
annotations:
github.com/project-slug: apac-org/payments-service
pagerduty.com/service-id: APAC-PAYMENTS-01
grafana/dashboard-selector: "apac-payments"
backstage.io/techdocs-ref: dir:.
spec:
type: service
lifecycle: production
owner: group:apac-payments-team
system: apac-financial-platform
dependsOn:
- component:apac-fraud-service
- component:apac-notification-service
providesApis:
- apac-payments-api-v2
APAC platform teams configure Backstage to scan GitHub organizations for catalog-info.yaml files automatically, populating the catalog without requiring manual APAC registration. Every APAC team that adds this file to their repository appears in the catalog with their ownership, dependencies, and API relationships.
Backstage Software Templates for APAC golden paths
The Scaffolder is where Backstage eliminates the most APAC onboarding friction:
# Backstage Software Template: new APAC microservice
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: apac-microservice-python
title: New APAC Python Microservice
description: Creates a new Python microservice with APAC platform defaults
spec:
parameters:
- title: APAC Service Details
properties:
serviceName:
type: string
description: APAC service name (lowercase, hyphens)
apacRegion:
type: string
enum: [sg, hk, jp, kr, tw, my]
description: Primary APAC region for this service
team:
type: string
description: APAC owning team name
steps:
- id: fetch-template
name: Fetch APAC microservice template
action: fetch:template
input:
url: ./skeleton/apac-python-service
values:
serviceName: ${{ parameters.serviceName }}
apacRegion: ${{ parameters.apacRegion }}
team: ${{ parameters.team }}
- id: publish
name: Create APAC GitHub repository
action: publish:github
input:
repoUrl: github.com?repo=${{ parameters.serviceName }}&owner=apac-org
description: APAC service — ${{ parameters.serviceName }}
- id: register
name: Register APAC service in catalog
action: catalog:register
input:
repoContentsUrl: ${{ steps['publish'].output.repoContentsUrl }}
catalogInfoPath: /catalog-info.yaml
An APAC developer fills the Backstage form (service name, region, team), clicks "Create", and receives a GitHub repository pre-configured with:
- Python FastAPI service structure with APAC regional configuration
- Dockerfile with APAC base image and security scanning
- Kubernetes manifests with APAC namespace and resource limits
- GitHub Actions CI/CD pipeline pushing to APAC container registry
- Prometheus metrics endpoint and Loki logging configuration
- Backstage
catalog-info.yamlfor immediate catalog registration
The APAC platform team maintains this template; APAC developers consume it as self-service.
Camunda: APAC Business Process Automation with BPMN
When workflow orchestration needs business alignment
The key distinction between Camunda and code-first workflow orchestrators (Temporal, Conductor) is the audience for the workflow definition. Camunda process models are BPMN 2.0 diagrams that APAC business analysts, compliance officers, and process owners can read and verify — not just APAC developers.
For APAC financial services teams where loan origination, KYC, and AML workflows must be audited against regulatory requirements by APAC compliance teams who are not engineers, Camunda's visual BPMN model provides both an executable process specification and a compliance-readable audit artifact.
APAC KYC workflow with Camunda
<!-- APAC KYC Process BPMN (simplified) -->
<bpmn:process id="apac-kyc-process" name="APAC KYC Verification">
<bpmn:startEvent id="application-received" name="APAC Application Received"/>
<!-- Automated APAC checks in parallel -->
<bpmn:parallelGateway id="apac-parallel-checks"/>
<bpmn:serviceTask id="apac-id-verification" name="APAC ID Document Check">
<bpmn:extensionElements>
<zeebe:taskDefinition type="apac-id-verify"/>
</bpmn:extensionElements>
</bpmn:serviceTask>
<bpmn:serviceTask id="apac-sanctions-check" name="APAC Sanctions List Check">
<bpmn:extensionElements>
<zeebe:taskDefinition type="apac-sanctions-check"/>
</bpmn:extensionElements>
</bpmn:serviceTask>
<bpmn:serviceTask id="apac-pep-check" name="APAC PEP Database Check">
<bpmn:extensionElements>
<zeebe:taskDefinition type="apac-pep-check"/>
</bpmn:extensionElements>
</bpmn:serviceTask>
<!-- Human review for APAC high-risk applicants -->
<bpmn:exclusiveGateway id="apac-risk-assessment" name="APAC Risk Level"/>
<bpmn:userTask id="apac-compliance-review" name="APAC Compliance Officer Review">
<!-- Routes to APAC compliance officer for high-risk cases -->
<bpmn:extensionElements>
<zeebe:assignmentDefinition assignee="=apac_compliance_team"/>
</bpmn:extensionElements>
</bpmn:userTask>
<bpmn:endEvent id="apac-kyc-approved" name="APAC KYC Approved"/>
<bpmn:endEvent id="apac-kyc-rejected" name="APAC KYC Rejected"/>
</bpmn:process>
# APAC Camunda worker: ID verification service task
from pyzeebe import ZeebeWorker, create_insecure_channel
channel = create_insecure_channel(hostname="camunda-zeebe.apac-workflows.svc.cluster.local")
worker = ZeebeWorker(channel)
@worker.task(task_type="apac-id-verify", timeout_ms=30000)
async def verify_apac_identity(applicant_id: str, document_type: str) -> dict:
# Call APAC ID verification service
result = await apac_id_service.verify(applicant_id, document_type)
return {
"id_verified": result.verified,
"id_confidence_score": result.confidence,
"apac_jurisdiction": result.jurisdiction
}
APAC compliance officers can view this BPMN diagram, trace individual APAC applicant workflows through the Camunda Operate UI, and produce audit evidence showing each APAC process instance executed the required checks — a compliance artifact that code-in-a-database workflow definitions cannot provide.
Conductor: APAC Microservices Workflow Orchestration
When APAC processes need code-first workflow definitions
For APAC engineering teams where workflows are defined by developers rather than business analysts, where BPMN modeling is overhead rather than value, and where the APAC workflow consumers are engineering teams rather than compliance officers, Conductor's code-first JSON workflow model is more natural than Camunda's BPMN.
Conductor is most used by APAC platform teams with:
- High-volume APAC data processing pipelines (ingestion, transformation, enrichment, output) with fan-out parallelism across APAC worker pools
- APAC content workflows (media processing, document generation, notification orchestration) where process participants are technical services rather than human reviewers
- Complex APAC integration workflows combining REST calls, queues, conditional logic, and sub-workflows without a human approval step
Conductor workflow definition for APAC document processing
{
"name": "apac-document-processing-workflow",
"description": "APAC document intake, OCR, classification, and routing",
"version": 1,
"tasks": [
{
"name": "apac_ocr_extraction",
"taskReferenceName": "apac_ocr_ref",
"type": "HTTP",
"inputParameters": {
"http_request": {
"uri": "http://apac-ocr-service.svc.cluster.local/extract",
"method": "POST",
"body": {
"document_url": "${workflow.input.document_url}",
"language": "${workflow.input.language}"
}
}
}
},
{
"name": "apac_parallel_classification",
"taskReferenceName": "apac_classify_fork",
"type": "FORK_JOIN",
"forkTasks": [
[{
"name": "apac_document_type_classification",
"taskReferenceName": "apac_doc_type_ref",
"type": "HTTP",
"inputParameters": {
"http_request": {
"uri": "http://apac-classifier.svc.cluster.local/document-type",
"method": "POST",
"body": {"text": "${apac_ocr_ref.output.extracted_text}"}
}
}
}],
[{
"name": "apac_language_detection",
"taskReferenceName": "apac_lang_ref",
"type": "SIMPLE",
"taskDefName": "apac_detect_language"
}]
],
"joinOn": ["apac_doc_type_ref", "apac_lang_ref"]
},
{
"name": "apac_routing_decision",
"taskReferenceName": "apac_route_ref",
"type": "SWITCH",
"expression": "${apac_doc_type_ref.output.document_type}",
"decisionCases": {
"kyc_document": [{"name": "apac_kyc_workflow", "type": "SUB_WORKFLOW"}],
"contract": [{"name": "apac_contract_processing", "type": "SUB_WORKFLOW"}]
}
}
]
}
APAC engineers deploy Python, Java, or Go worker services that poll Conductor for apac_detect_language tasks, execute the language detection logic, and report results — with Conductor managing the workflow state, retry logic, and parallel branch coordination.
APAC Platform Tool Selection Guide
APAC Platform Problem → Tool → Why
Developer experience scale pain → Backstage Self-service catalog + templates
(service discovery, onboarding, reduce APAC platform ticket queue
golden path templates)
Business process automation → Camunda BPMN visual modeling auditable by
(KYC, loan approval, AML review, APAC compliance + business teams;
regulatory compliance workflows) persistent state for long-running APAC
Microservices workflow orchestration → Conductor Code-first JSON workflows; external
(data pipelines, content processing, APAC worker model; high-volume
integration choreography) fan-out parallelism
Code-first workflow with strong SDK → Temporal Better developer experience than
(Python/Go/Java developer-defined) (existing) Conductor for APAC code-first teams
BPMN execution without portal needs → Camunda BPMN engine without portal overhead
(process automation only, no IDP)
Many APAC enterprises deploy Backstage for developer experience and Camunda for process automation as independent investments addressing different APAC platform problems — neither replaces the other.
Related APAC Platform Engineering Resources
For the Kubernetes infrastructure that runs Backstage, Camunda, and Conductor in APAC, see the APAC Kubernetes platform engineering guide covering vCluster, External Secrets, and ExternalDNS.
For the event-driven architecture tools that APAC Conductor workflows integrate with, see the APAC Kubernetes event-driven architecture guide covering NATS, Argo Events, and Dapr.
For the observability stack monitoring APAC Backstage, Camunda, and Conductor deployments, see the APAC Kubernetes observability guide covering Loki, Tempo, and VictoriaMetrics.
Beyond this insight
Cross-reference our practice depth.
If this article matches your stage of thinking, the underlying capabilities ship across all six pillars, ten verticals, and nine Asian markets.