{"id":4028,"date":"2022-03-09T06:18:02","date_gmt":"2022-03-09T14:18:02","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cosmosdb\/?p=4028"},"modified":"2022-03-09T06:18:02","modified_gmt":"2022-03-09T14:18:02","slug":"jack-henry-finds-reliable-fast-database","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cosmosdb\/jack-henry-finds-reliable-fast-database\/","title":{"rendered":"Financial services firm Jack Henry finds a reliable, fast database in Azure Cosmos DB"},"content":{"rendered":"<p><em>Executive summary: Jack Henry &amp; Associates offers financial services and products to some 8,500 banks and other financial institutions. Its old database was prone to crashes and could not scale to meet growing demand. Now, Jack Henry has a scalable, reliable database in Azure Cosmos DB.<\/em><\/p>\n<p>Founded in 1976, <a href=\"https:\/\/www.jackhenry.com\/pages\/default.aspx\" target=\"_blank\" rel=\"noopener\">Jack Henry &amp; Associates<\/a> offers a wide range of financial services to approximately 8,500 financial institutions. The company offers more than 300 products and services that help its customers process financial transactions, automate their businesses, and succeed in an increasingly competitive marketplace.<\/p>\n<p>Recent, rapid growth has put pressure on Jack Henry\u2019s IT services. Rising volumes of transaction data\u2014now 18 terabytes, up from 13 less than a year ago\u2014were taxing its existing HBase database solution. Peak demand spikes based on paychecks and other predictable events were becoming more difficult to manage with a database that lacked the ability to scale rapidly.<\/p>\n<h2><strong>Old technology holds the company back<\/strong><\/h2>\n<p>Chris Davenport, Senior Staff Engineer for Jack Henry, characterizes the situation: \u201cWe have a small IT infrastructure team, and supporting our previous database was difficult,\u201d he says. \u201cIt was out of date, and we couldn\u2019t update libraries easily. We had to hold back on building new library versions to avoid overwhelming our older technologies.\u201d<\/p>\n<p>Jack Henry also found that its region servers often crashed. \u201cWe had to tell people we were down, and that caused a lot of friction,\u201d says Davenport. \u201cThat made us look for a more sustainable solution\u2014one that was more dependable and would not put the same demands on our IT team.\u201d<\/p>\n<p>Jack Henry\u2019s IT team considered creating an in-house solution before comparing cloud providers and choosing Microsoft Azure as the backbone of their infrastructure. The team deployed <a href=\"https:\/\/azure.microsoft.com\/services\/cosmos-db\/\" target=\"_blank\" rel=\"noopener\">Azure Cosmos DB<\/a>, a fully managed NoSQL database that offers fast response times, <a href=\"https:\/\/azure.microsoft.com\/support\/legal\/sla\/cosmos-db\/v1_4\/\" target=\"_blank\" rel=\"noopener\">99.999 percent availability<\/a>, and instant scalability to respond to changing market conditions.<\/p>\n<p>\u201cThe main allure of Azure Cosmos DB was that our infrastructure team wouldn\u2019t need to be involved in the day-to-day operations of this massive store of data that is the foundation for our business,\u201d says Davenport.<\/p>\n<blockquote>\n<p style=\"text-align: center;\"><em>\u201cWe have a small IT infrastructure team, and supporting our previous database was difficult. It was out of date, and we couldn\u2019t update libraries easily. We had to hold back on building new library versions to avoid overwhelming our older technologies.\u201d<\/em><\/p>\n<p style=\"text-align: center;\">&#8211; Chris Davenport, Senior Staff Engineer<\/p>\n<\/blockquote>\n<h2><strong>Multi-state deployment<\/strong><\/h2>\n<p>Jonathan Quist, Engineering Manager for Jack Henry, says the IT team took a multi-step approach to deploying Azure Cosmos DB. It began with what he calls \u201cexploration\u201d\u2014introducing his team to Azure Cosmos DB and walking through its capabilities with Microsoft engineers. From there, the Jack Henry team consolidated the locations it updated or created transactions into a single place.<\/p>\n<p>Then, the team dual-wrote transactions to both Azure Cosmos DB and the previous database, ensuring that each transaction was recorded with 100 percent accuracy. \u201cWe literally measured every error,\u201d says Davenport. \u201cIf there was an error anywhere in writing, we had to go back to the start\u2014otherwise we couldn\u2019t guarantee the migration would work correctly.\u201d<\/p>\n<p>When it came time to migrate, the Jack Henry team spent three weeks on the process, culminating in a complete transfer of data to Azure Cosmos DB and designating that database as the single source of truth for the company.<\/p>\n<p>Challenges to the switch were few but required work. One was the task of moving all of Jack Henry\u2019s custom applications to Azure. The second was that Azure Cosmos DB was the first piece of software in which the team worked with Kubernetes clusters, an open-source tool that creates a set of node machines for running containerized applications.<\/p>\n<p>Not long after the migration, Jack Henry had a hiccup that would have been serious a few months before. The team was still writing to the new solution when, as Quist describes, \u201cWe lost the connection to our previous database\u2014and we didn\u2019t even notice. That\u2019s when we decided this is great.\u201d<\/p>\n<blockquote>\n<p style=\"text-align: center;\"><em>\u201cThe main allure of Azure Cosmos DB was that our infrastructure team wouldn\u2019t need to be involved in the day-to-day operations of this massive store of data that is the foundation for our business.\u201d<\/em><\/p>\n<p style=\"text-align: center;\">&#8211; Chris Davenport, Senior Staff Engineer<\/p>\n<\/blockquote>\n<p>&nbsp;<\/p>\n<h2><strong>Better stability, scalability, and performance<\/strong><\/h2>\n<p>Since then, Azure Cosmos DB has continued to impress. \u201cWe haven\u2019t been paged once for a transaction this year, a page being an after-hours escalation. We were getting quite a few previously, and they\u2019re very stressful. So that was a big impact,\u201d Quist says. \u201cMoreover, I do my own banking on the app, and the performance improvement is noticeable.\u201d<\/p>\n<p>Jack Henry\u2019s customers also have noticed the upgrade. Transaction-related issues have plunged by 60 percent, improving customer satisfaction while reducing pressure on IT to respond. The company also has seen a dramatic improvement in system availability. Formerly, the database system was down anywhere from 30 minutes to two hours every few weeks. Now, says Quist: \u201cThat doesn\u2019t happen anymore. We\u2019ve had no downtime.\u201d<\/p>\n<p>From a business standpoint, consolidating services has given Jack Henry\u2019s IT team a system that is easier and more efficient to manage. Soon, Jack Henry plans to deploy Azure Cosmos DB\u2019s pagination solution, which streamlines how queries are processed. And it will begin moving older transaction data to tiered storage, meaning Jack Henry will pay less for storage while giving up some speed if data needs to be recalled.<\/p>\n<p>Moreover, the company\u2019s great experience with Azure Cosmos DB\u2014a PaaS, or \u201cplatform as a service\u201d\u2014is leading them to look at other Microsoft PaaS tools.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Read about how Jack Henry has a found a scalable, reliable database in Azure Cosmos DB.<\/p>\n","protected":false},"author":8297,"featured_media":4030,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[14,1809,13],"tags":[],"class_list":["post-4028","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-core-sql-api","category-customers","category-news"],"acf":[],"blog_post_summary":"<p>Read about how Jack Henry has a found a scalable, reliable database in Azure Cosmos DB.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/4028","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/users\/8297"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/comments?post=4028"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/4028\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media\/4030"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media?parent=4028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/categories?post=4028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/tags?post=4028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}