Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root


1 badge earned


Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!


Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.


Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!


Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
Community Members
Community Events
Community Groups

Boosting Jira Marketplace Apps development with Apache Ignite

Suppose you need to implement a Jira Cloud app with a backend written in Java that should be capable of executing both long-running calculation-heavy issue processing jobs and lightweight requests from different Jira users in parallel. And suppose that this backend needs a data persistence layer with the following properties:

  • integrates with Java natively
  • highly available and horizontally scalable
  • fault-tolerant and distributed
  • supports distributed ACID transactions
  • provides data persistence on disk
  • supports SQL for distributed data
  • supports in-memory data storage
  • can be used for caching, preferably via JCache API
  • supports user-defined distributed jobs
  • provides automatic failover both for connections to database and for distributed jobs
  • provides Transparent Data Encryption for safety reasons
  • supports native configurations for deployment in Kubernetes
  • free and open-source
  • has an optional paid technical support

Sure enough you came across some of these requirements in your projects but what if you need to fulfill all of them at the same time? In Boosting Jira Cloud app development with Apache Ignite we show how Apache Ignite distributed database combined with Spring Boot framework can be used to build services with outlined properties, including our own service Alliedium AIssistant Cloud app built as Jira Cloud app that leverages machine learning (ML) to make Jira issue processing easier. This choice of technologies has proven to be a practically viable solution that runs equally well on both AWS EKS as our production environment and our local Kubernetes cluster deployed via Kubespray used as our development environment. Moreover, we use Apache Ignite for both data persistence and fast in-memory issue processing via distributed jobs:


Besides having all the properties listed above, Apache Ignite:

  • provides a key-value API (as being a key-value database internally) while SQL is implemented as an extra layer on top of that
  • supports multiple partitioning and replication modes including “distributed replicated” mode that distributes data across the cluster nodes keeping a few replicas of each data partition on other nodes. This way of making a distributed database fault-tolerant storing data is widely used by other distributed storage technologies (GlusterFS for instance)
  • supports failover for distributed transactions
  • natively supports classical distributed machine learning (ML) training algorithms and has a deep integration with TensorFlow

In Boosting Jira Cloud app development with Apache Ignite paper we have demonstrated how Apache Ignite and Atlassian Connect Spring Boot can be integrated to serve as a base for a scalable distributed backend. However, many interesting challenges when building distributed services and the ways to overcome them we left out of the scope of this paper on purpose as unrelated directly to Jira and Jira apps. Thus we still have a lot to share in a few subsequent papers.




Log in or Sign up to comment
AUG Leaders

Atlassian Community Events