Using Protobuf to make Jira Cloud faster
Apr 24, 2020Ninh Doan

Summary
This post details the technical implementation of the Jira Issue Service, a microservice designed to handle Jira issue data. It outlines the phased approach to decomposing the Jira Monolith, with a focus on Phase 1 where the Issue Service acts as an eventually consistent cache. A significant technical contribution is the migration from JSON to Protobuf for inter-service communication, including the rationale for choosing Protobuf, the migration strategy (dual-write, CHECK mode for validation), and the observed performance benefits (reduced CPU, smaller data size, faster serialization/deserialization, lower response time). Learnings regarding Protobuf's NULL handling and Spring integration are also documented.