Hi everyone,
I've been looking into an interesting architectural challenge in Jira Cloud, and I'm curious how experienced Jira developers and administrators would approach it.
Imagine a large organization running 24/7 operations across multiple Jira projects.
At exactly 06:00, one team hands over responsibility to another. The incoming team needs a complete and reliable snapshot of all unresolved critical issues, including their status, assignees, priorities, and outstanding actions.
Sounds straightforward, right?
But here's where it gets complicated.
While the snapshot is being generated:
- Jira Automation transitions several issues between statuses.
- Another user changes issue priorities and assignees.
- Some issues are reopened after initially being resolved.
- Issue security permissions change.
- The REST API is still retrieving additional pages of results.
Jira Cloud's enhanced JQL search uses nextPageToken pagination and operates with eventual consistency.
The reconcileIssues parameter improves consistency for known issues, but it doesn't automatically provide a globally consistent snapshot of a changing result set.
So here's the actual challenge:
How would you design a system that guarantees all three of the following?
1. Completeness: Every issue matching the criteria at the exact cutoff time is included, without duplicates or missing records.
2. Historical accuracy: The snapshot represents what was actually true at 06:00, even if issues are modified milliseconds later.
3. Permission safety: Users accessing the snapshot cannot retrieve information they are no longer authorized to view.
Would you approach this through:
- Event-driven state tracking with periodic reconciliation?
- Timestamp-based queries combined with multiple verification passes?
- Immutable snapshots with separate permission validation?
- Some combination of Jira Automation, REST APIs, and custom persistence?
Or is strict point-in-time consistency fundamentally impossible to guarantee using Jira Cloud's available APIs?
I'm particularly interested in solutions that work across thousands of issues without maintaining a complete external replica of Jira.
How would you approach this architecture, and what trade-offs would you accept?
I'd be interested to hear different perspectives.