Inside Atlassian’s Forge Billing Architecture for Distributed Usage Tracking at Scale
Summary
Atlassian has detailed the engineering of its Forge billing platform, designed to support usage-based pricing across its cloud application development ecosystem, including products like Jira and Confluence. This system translates distributed usage signals, such as function invocations and storage consumption, into accurate financial records at scale. The platform evolved to handle high-volume events from independent services, ensuring consistent validation, correct tenant attribution, and transformation into billing-ready records without duplication or loss, while providing near real-time visibility for developers. Its architecture comprises Forge services emitting structured usage events, a centralized ingestion and streaming layer built on Kafka-based systems, a Usage Tracking Service (UTS) for coordination and processing, and downstream billing and commerce systems. UTS validates, normalizes, enriches, and deduplicates events, ensuring financial correctness and consistent attribution before persistence in layered storage for auditability and analytics.
Key takeaway
For Data Engineers designing billing systems for distributed cloud platforms, Atlassian's Forge architecture offers a robust blueprint. You should prioritize idempotent event design and a centralized Usage Tracking Service to ensure financial correctness and consistent attribution at scale. Implement a Kafka-based streaming layer to decouple services and enable independent scaling of ingestion and processing components, enhancing reliability and auditability.
Key insights
Atlassian's Forge billing platform ensures accurate, scalable usage-based pricing through a distributed event processing architecture.
Principles
- Decouple producers from consumers.
- Enforce shared schema for events.
- Design for idempotent event processing.
Method
Usage events are ingested, validated, normalized, enriched, deduplicated, and ordered by UTS, then aggregated into metrics for billing and analytics, stored in layered systems.
In practice
- Implement Kafka-based streaming infrastructure.
- Use time-based aggregation for consistency.
- Map usage to developer spaces for tracking.
Topics
- Forge Platform
- Usage-Based Billing
- Distributed Systems
- Kafka Streaming
- Event Processing
- Data Consistency
- Cloud Architecture
Best for: Software Engineer, DevOps Engineer, Data Engineer
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by InfoQ.