{"id":28010,"date":"2021-03-19T17:18:28","date_gmt":"2021-03-19T11:48:28","guid":{"rendered":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/"},"modified":"2024-12-16T19:00:09","modified_gmt":"2024-12-16T13:30:09","slug":"monolith-to-microservices-capstone-project","status":"publish","type":"post","link":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/","title":{"rendered":"Monolith to Microservices - PGP CC Capstone Project"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"team\">Team:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a rel=\"noreferrer noopener\" href=\"https:\/\/www.linkedin.com\/in\/ramkumarpattabiraman\/\" target=\"_blank\">Ramkumar Pattabiraman<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.linkedin.com\/in\/kannappan-krishnan-2830b323\/\">Kannappan Krishnan<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.linkedin.com\/in\/karthik-subramaniam-0672b06\/\">Karthik Subramaniam<\/a><\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"application-an-online-shopping-portal\"><strong>Application:<\/strong> \u2013 An Online Shopping Portal<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"current-business-context-and-challenges\"><strong>Current Business Context and Challenges:<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The monolith system is not scalable to the number of user hits and application will tend to crash in the peak load&nbsp;<\/li>\n\n\n\n<li>The legacy system doesn\u2019t support high availability, scalability, automation and reliability&nbsp;<\/li>\n\n\n\n<li>The legacy system lacks interoperability with newer technologies and integration with applications based on new technologies is often expensive in terms of time and efforts<\/li>\n\n\n\n<li>Being a monolith, more frequent releases are always a challenge to deal with&nbsp;<\/li>\n\n\n\n<li>Limitations in security with the current architecture and design&nbsp;<\/li>\n\n\n\n<li>Frequent upload and maintaining product catalog has been a challenge due to lack of automation<\/li>\n\n\n\n<li>Faster to Market \u2013 Continuous integration and ease of deployment<\/li>\n<\/ul>\n\n\n\n<p>The current ecommerce web application is a big monolith application with a legacy front end and&nbsp; Java\/Spring services. A single database backend is unable to meet the scaling needs of the deployment. Querying data is a big bottleneck as it gets slower and slower over time. This issue along with the increasing user base forced us to think of a better solution and move to container-based deployment to auto scale and manage resources better in the cloud.&nbsp;<\/p>\n\n\n\n    <div class=\"courses-cta-container\">\n        <div class=\"courses-cta-card\">\n            <div class=\"courses-cta-header\">\n                <div class=\"courses-learn-icon\"><\/div>\n                <span class=\"courses-learn-text\">Great Learning<\/span>\n            <\/div>\n            <p class=\"courses-cta-title\">\n                <a href=\"https:\/\/www.mygreatlearning.com\/pg-program-cloud-computing-course\" class=\"courses-cta-title-link\">PG in Cloud Computing With AI Skills<\/a>\n            <\/p>\n            <p class=\"courses-cta-description\">Learn AWS, Azure &amp; GCP with 80+ projects, 120+ services, expert mentorship &amp; career support. Now with Applied AI on Cloud!<\/p>\n            <div class=\"courses-cta-stats\">\n                <div class=\"courses-stat-item\">\n                    <div class=\"courses-stat-icon courses-user-icon\"><\/div>\n                    <span>2876 ratings<\/span>\n                <\/div>\n                <div class=\"courses-stat-item\">\n                    <div class=\"courses-stat-icon courses-star-icon\"><\/div>\n                    <span>4.63<\/span>\n                <\/div>\n            <\/div>\n            <a href=\"https:\/\/www.mygreatlearning.com\/pg-program-cloud-computing-course\" class=\"courses-cta-button\">\n                Start Learning Cloud Computing\n                <div class=\"courses-arrow-icon\"><\/div>\n            <\/a>\n        <\/div>\n    <\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"current-technical-pain-points\"><strong>Current Technical Pain points:<\/strong><\/h2>\n\n\n\n<p>The legacy Java monolith application is not scalable, and it is one fat JAR which has to be deployed every time. Due to the size of the application the start time and application initialization time is adversely affected. Furthermore, additional memory pressure among high other system requirements is forcing the team to think about a strategy to control these issues in the long run.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"functional-specification\"><strong>Functional Specification:<\/strong><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"actors\"><strong>Actors:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Users\/End Consumers<\/li>\n\n\n\n<li>Seller\/Employee\/Managers<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"modules\"><strong>Modules:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Home Page<\/li>\n\n\n\n<li>Product and Details Page<\/li>\n\n\n\n<li>User Registration and User Login<\/li>\n\n\n\n<li>Manage Carts and Orders (View, Edit and cancel)<\/li>\n\n\n\n<li>Manage Products and inventory \u2013 Employee Role<\/li>\n\n\n\n<li>Manage Order clearance and shipping<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"use-case-product-search-and-order-processing\"><strong>Use Case: <\/strong><strong>Product Search and Order processing<\/strong><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"proposed-solution\"><strong>Proposed Solution:&nbsp;<\/strong><\/h2>\n\n\n\n<p>To circumvent the technical pain points and the business need for a highly scalable solution the monolith application has been broken into 5 microservice bounded contexts (Products, Orders, Users, Cart and Reports). AWS is chosen as the cloud platform due to the ease of use and the cost benefit associated with it for corporates.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"proposed-technology-stack\"><strong>Proposed Technology Stack:<\/strong><\/h2>\n\n\n\n<p>Angular 9, Java Spring Boot, PostgreSql, Docker. For AWS services \u2013 Refer separate section below<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"solution-approach\"><strong>Solution Approach:<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Identify core functional business context from existing application and also from eCommerce context<\/li>\n\n\n\n<li>Identify Services which exist and can be containerized as is<\/li>\n\n\n\n<li>Identify the new set of services<\/li>\n\n\n\n<li>Identify different database and entities required for each microservice<\/li>\n\n\n\n<li>Identify how data consistency can be maintained across different databases\/microservices<\/li>\n\n\n\n<li>Implement Pub\/Sub as the primary mode of asynchronous calls<\/li>\n\n\n\n<li>Identify and implement microservice best practices<\/li>\n\n\n\n<li>Implement serverless leveraging managed services so that the manual intervention and management of those services can either be eliminated or reduced substantially<\/li>\n\n\n\n<li>Identify strict security policies and enforce an appropriate A&amp;A model so that the data is secured and also encrypted throughout the transmission and at rest<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"design-principles\"><strong>Design Principles:<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Domain Driven Design<\/strong> \u2013 Enabled by implementing Microservices based architecture \u2013 Modular routines for each of the functionalities \u2013 User, Product, Cart, Order and Reports&nbsp;<\/li>\n\n\n\n<li><strong>Cloud First<\/strong> - Building a highly scalable, resilient, cost effective infrastructure using cloud<\/li>\n\n\n\n<li><strong>Microservices architecture<\/strong> \u2013 Aligning each service to have it\u2019s own database&nbsp;<\/li>\n\n\n\n<li><strong>Scalable solution<\/strong> \u2013 Implementation of containerized application using Dockers and ECS to enable horizontal scaling<\/li>\n\n\n\n<li><strong>Secured Application<\/strong> \u2013 Enabled by API Gateway, Lambda Authorizers, Security group &amp; ACL\u2019s<\/li>\n\n\n\n<li><strong>Caching and Performance<\/strong>\u2013 Caching enabled by Redis cache for faster search<\/li>\n\n\n\n<li><strong>Faster to Market \u2013 <\/strong>DevOps integration with CI\/CD and Code Pipeline<\/li>\n\n\n\n<li><strong>Event driven integration<\/strong> \u2013 Communication between decoupled services&nbsp;<\/li>\n\n\n\n<li><strong>Operational excellence \u2013<\/strong> Elastic search and Kibana integration to view logs and errors<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"key-characteristics-of-architecture\"><strong>Key Characteristics of Architecture<\/strong>:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Microservices implementation using Fargate\/Auto Scaling<\/li>\n\n\n\n<li>Highly scalable, available, and secured architecture<\/li>\n\n\n\n<li><strong>Private Load balancer:<\/strong> . We have implemented the NLB in a private subnet and integrated with API gateway through VPC links. By this we have made our Load Balancer URL not accessible publicly rather all requests routed securely through API gateway.<\/li>\n\n\n\n<li><strong>Lambda Authorizer and API gateway implementation<\/strong>:&nbsp; Custom Lambda Authorizer was implemented as an additional security around API invocation. This was written in Node JS to validate the header for the JWT token and make sure that the authenticated calls get to the ECS cluster.<\/li>\n\n\n\n<li><strong>Data Consistency<\/strong> - Saga Pattern with Lambda - Choreography model. Eventual consistency is maintained across services through the Saga pattern implementation with SQS implementation.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aws-components-services-used\"><strong>AWS Components\/Services Used:<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Networking: <\/strong>VPC, Subnets, IGW, Route Tables, Elastic IPs, NAT Gateway, NACL<\/li>\n\n\n\n<li><strong>Storage<\/strong>: RDS, Redis, Elasticache, DynamoDB<\/li>\n\n\n\n<li><strong>Compute: <\/strong>Monolith Application (Microservices, Screenshots &amp; Java Spring boot source code), ECR, ECS, Autoscaling, EC2, Load Balancer, Target Groups, Security Group for ECS<\/li>\n\n\n\n<li><strong>Serverless Functions and Managed Services<\/strong> : Lambda<\/li>\n\n\n\n<li><strong>Other Services used:<\/strong> IAM Policy and Roles, Security Groups, Policies, SQS, SNS, SES, API Gateway API Gateway Configuration, Lambda Authorizer Security and Management, Secrets Manager, Parameter Store, CloudWatch, CDN, CloudFront, S3, Route 53, ACM, Devops, Athena, Elasticsearch and Kibana.<\/li>\n<\/ol>\n\n\n\n<p>This brings us to the end of the capstone project, if you wish to upskill in this domain, join <a href=\"https:\/\/www.mygreatlearning.com\/pg-program-cloud-computing-course\">Great Learning's PGP Cloud Computing Course<\/a> and build your dream career. You will have access to live mentorship sessions and can work on exciting capstone projects as well. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Team: Application: \u2013 An Online Shopping Portal Current Business Context and Challenges: The current ecommerce web application is a big monolith application with a legacy front end and&nbsp; Java\/Spring services. A single database backend is unable to meet the scaling needs of the deployment. Querying data is a big bottleneck as it gets slower and [&hellip;]<\/p>\n","protected":false},"author":41,"featured_media":28014,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[6],"tags":[],"content_type":[],"class_list":["post-28010","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-computing"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Monolith to Microservices - PGP CC Capstone Project<\/title>\n<meta name=\"description\" content=\"The current ecommerce web application is a big monolith application with a legacy front end and Java\/Spring services. Learn more.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monolith to Microservices - PGP CC Capstone Project\" \/>\n<meta property=\"og:description\" content=\"The current ecommerce web application is a big monolith application with a legacy front end and Java\/Spring services. Learn more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/\" \/>\n<meta property=\"og:site_name\" content=\"Great Learning Blog: Free Resources what Matters to shape your Career!\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/GreatLearningOfficial\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-19T11:48:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-16T13:30:09+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1284\" \/>\n\t<meta property=\"og:image:height\" content=\"816\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Great Learning Editorial Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/Great_Learning\" \/>\n<meta name=\"twitter:site\" content=\"@Great_Learning\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Great Learning Editorial Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/\"},\"author\":{\"name\":\"Great Learning Editorial Team\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/person\\\/6f993d1be4c584a335951e836f2656ad\"},\"headline\":\"Monolith to Microservices - PGP CC Capstone Project\",\"datePublished\":\"2021-03-19T11:48:28+00:00\",\"dateModified\":\"2024-12-16T13:30:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/\"},\"wordCount\":900,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/iStock-1200037155.jpg\",\"articleSection\":[\"Cloud Computing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/\",\"name\":\"Monolith to Microservices - PGP CC Capstone Project\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/iStock-1200037155.jpg\",\"datePublished\":\"2021-03-19T11:48:28+00:00\",\"dateModified\":\"2024-12-16T13:30:09+00:00\",\"description\":\"The current ecommerce web application is a big monolith application with a legacy front end and Java\\\/Spring services. Learn more.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/iStock-1200037155.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/iStock-1200037155.jpg\",\"width\":1284,\"height\":816,\"caption\":\"cloud capstone\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/monolith-to-microservices-capstone-project\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloud Computing\",\"item\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/cloud-computing\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Monolith to Microservices &#8211; PGP CC Capstone Project\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\",\"name\":\"Great Learning Blog\",\"description\":\"Learn, Upskill &amp; Career Development Guide and Resources\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\"},\"alternateName\":\"Great Learning\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\",\"name\":\"Great Learning\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/GL-Logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/GL-Logo.jpg\",\"width\":900,\"height\":900,\"caption\":\"Great Learning\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/GreatLearningOfficial\\\/\",\"https:\\\/\\\/x.com\\\/Great_Learning\",\"https:\\\/\\\/www.instagram.com\\\/greatlearningofficial\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/school\\\/great-learning\\\/\",\"https:\\\/\\\/in.pinterest.com\\\/greatlearning12\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/beaconelearning\\\/\"],\"description\":\"Great Learning is a leading global ed-tech company for professional training and higher education. It offers comprehensive, industry-relevant, hands-on learning programs across various business, technology, and interdisciplinary domains driving the digital economy. These programs are developed and offered in collaboration with the world's foremost academic institutions.\",\"email\":\"info@mygreatlearning.com\",\"legalName\":\"Great Learning Education Services Pvt. Ltd\",\"foundingDate\":\"2013-11-29\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/person\\\/6f993d1be4c584a335951e836f2656ad\",\"name\":\"Great Learning Editorial Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"contentUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"caption\":\"Great Learning Editorial Team\"},\"description\":\"The Great Learning Editorial Staff includes a dynamic team of subject matter experts, instructors, and education professionals who combine their deep industry knowledge with innovative teaching methods. Their mission is to provide learners with the skills and insights needed to excel in their careers, whether through upskilling, reskilling, or transitioning into new fields.\",\"sameAs\":[\"https:\\\/\\\/www.mygreatlearning.com\\\/\",\"https:\\\/\\\/in.linkedin.com\\\/school\\\/great-learning\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/Great_Learning\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCObs0kLIrDjX2LLSybqNaEA\"],\"award\":[\"Best EdTech Company of the Year 2024\",\"Education Economictimes Outstanding Education\\\/Edtech Solution Provider of the Year 2024\",\"Leading E-learning Platform 2024\"],\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/author\\\/greatlearning\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Monolith to Microservices - PGP CC Capstone Project","description":"The current ecommerce web application is a big monolith application with a legacy front end and Java\/Spring services. Learn more.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/","og_locale":"en_US","og_type":"article","og_title":"Monolith to Microservices - PGP CC Capstone Project","og_description":"The current ecommerce web application is a big monolith application with a legacy front end and Java\/Spring services. Learn more.","og_url":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/","og_site_name":"Great Learning Blog: Free Resources what Matters to shape your Career!","article_publisher":"https:\/\/www.facebook.com\/GreatLearningOfficial\/","article_published_time":"2021-03-19T11:48:28+00:00","article_modified_time":"2024-12-16T13:30:09+00:00","og_image":[{"width":1284,"height":816,"url":"http:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155.jpg","type":"image\/jpeg"}],"author":"Great Learning Editorial Team","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/Great_Learning","twitter_site":"@Great_Learning","twitter_misc":{"Written by":"Great Learning Editorial Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/#article","isPartOf":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/"},"author":{"name":"Great Learning Editorial Team","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/person\/6f993d1be4c584a335951e836f2656ad"},"headline":"Monolith to Microservices - PGP CC Capstone Project","datePublished":"2021-03-19T11:48:28+00:00","dateModified":"2024-12-16T13:30:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/"},"wordCount":900,"commentCount":0,"publisher":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155.jpg","articleSection":["Cloud Computing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/","url":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/","name":"Monolith to Microservices - PGP CC Capstone Project","isPartOf":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/#primaryimage"},"image":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155.jpg","datePublished":"2021-03-19T11:48:28+00:00","dateModified":"2024-12-16T13:30:09+00:00","description":"The current ecommerce web application is a big monolith application with a legacy front end and Java\/Spring services. Learn more.","breadcrumb":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/#primaryimage","url":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155.jpg","contentUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155.jpg","width":1284,"height":816,"caption":"cloud capstone"},{"@type":"BreadcrumbList","@id":"https:\/\/www.mygreatlearning.com\/blog\/monolith-to-microservices-capstone-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.mygreatlearning.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cloud Computing","item":"https:\/\/www.mygreatlearning.com\/blog\/cloud-computing\/"},{"@type":"ListItem","position":3,"name":"Monolith to Microservices &#8211; PGP CC Capstone Project"}]},{"@type":"WebSite","@id":"https:\/\/www.mygreatlearning.com\/blog\/#website","url":"https:\/\/www.mygreatlearning.com\/blog\/","name":"Great Learning Blog","description":"Learn, Upskill &amp; Career Development Guide and Resources","publisher":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization"},"alternateName":"Great Learning","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mygreatlearning.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization","name":"Great Learning","url":"https:\/\/www.mygreatlearning.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/06\/GL-Logo.jpg","contentUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/06\/GL-Logo.jpg","width":900,"height":900,"caption":"Great Learning"},"image":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/GreatLearningOfficial\/","https:\/\/x.com\/Great_Learning","https:\/\/www.instagram.com\/greatlearningofficial\/","https:\/\/www.linkedin.com\/school\/great-learning\/","https:\/\/in.pinterest.com\/greatlearning12\/","https:\/\/www.youtube.com\/user\/beaconelearning\/"],"description":"Great Learning is a leading global ed-tech company for professional training and higher education. It offers comprehensive, industry-relevant, hands-on learning programs across various business, technology, and interdisciplinary domains driving the digital economy. These programs are developed and offered in collaboration with the world's foremost academic institutions.","email":"info@mygreatlearning.com","legalName":"Great Learning Education Services Pvt. Ltd","foundingDate":"2013-11-29","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/person\/6f993d1be4c584a335951e836f2656ad","name":"Great Learning Editorial Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","url":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","contentUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","caption":"Great Learning Editorial Team"},"description":"The Great Learning Editorial Staff includes a dynamic team of subject matter experts, instructors, and education professionals who combine their deep industry knowledge with innovative teaching methods. Their mission is to provide learners with the skills and insights needed to excel in their careers, whether through upskilling, reskilling, or transitioning into new fields.","sameAs":["https:\/\/www.mygreatlearning.com\/","https:\/\/in.linkedin.com\/school\/great-learning\/","https:\/\/x.com\/https:\/\/twitter.com\/Great_Learning","https:\/\/www.youtube.com\/channel\/UCObs0kLIrDjX2LLSybqNaEA"],"award":["Best EdTech Company of the Year 2024","Education Economictimes Outstanding Education\/Edtech Solution Provider of the Year 2024","Leading E-learning Platform 2024"],"url":"https:\/\/www.mygreatlearning.com\/blog\/author\/greatlearning\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155.jpg",1284,816,false],"thumbnail":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155-150x150.jpg",150,150,true],"medium":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155-300x191.jpg",300,191,true],"medium_large":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155-768x488.jpg",768,488,true],"large":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155-1024x651.jpg",1024,651,true],"1536x1536":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155.jpg",1284,816,false],"2048x2048":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155.jpg",1284,816,false],"web-stories-poster-portrait":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155-640x816.jpg",640,816,true],"web-stories-publisher-logo":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155-96x96.jpg",96,96,true],"web-stories-thumbnail":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2021\/03\/iStock-1200037155-150x95.jpg",150,95,true]},"uagb_author_info":{"display_name":"Great Learning Editorial Team","author_link":"https:\/\/www.mygreatlearning.com\/blog\/author\/greatlearning\/"},"uagb_comment_info":0,"uagb_excerpt":"Team: Application: \u2013 An Online Shopping Portal Current Business Context and Challenges: The current ecommerce web application is a big monolith application with a legacy front end and&nbsp; Java\/Spring services. A single database backend is unable to meet the scaling needs of the deployment. Querying data is a big bottleneck as it gets slower and&hellip;","_links":{"self":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/posts\/28010","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/comments?post=28010"}],"version-history":[{"count":6,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/posts\/28010\/revisions"}],"predecessor-version":[{"id":110288,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/posts\/28010\/revisions\/110288"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/media\/28014"}],"wp:attachment":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/media?parent=28010"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/categories?post=28010"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/tags?post=28010"},{"taxonomy":"content_type","embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/content_type?post=28010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}