
{"id":4102,"date":"2023-06-16T09:53:56","date_gmt":"2023-06-16T09:53:56","guid":{"rendered":"https:\/\/avra.pl\/?page_id=4102"},"modified":"2023-08-14T13:59:33","modified_gmt":"2023-08-14T13:59:33","slug":"new-beginning-with-microservices-architecture","status":"publish","type":"page","link":"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/","title":{"rendered":"New Beginning with Microservices Architecture"},"content":{"rendered":"\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h2><span style=\"color: #1c55d9;\">Chapter 7<\/span><span style=\"font-weight: 400;\">: New Beginning with Microservices Architecture<\/span><\/h2>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p>This is third part of series of articles about &#8220;Complete Set of Tactics for Reducing Tech Debt: Lessons Learned from 14 Years of Building Java Enterprise Systems&#8221;.<\/p>\n<ul>\n<li>Part 1: &#8220;<a href=\"https:\/\/avra.pl\/en\/cafeteria-system-story\/\">The Beginning of a Big Project<\/a>&#8220;<\/li>\n<li>Part 2: &#8220;<a href=\"https:\/\/avra.pl\/en\/comparative-technological-audit\/\">Comparative Technological Audit<\/a>&#8220;.<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">In this chapter, we explore the lessons learned in software development while adopting Domain-Driven Design (DDD), Event Storming, and Microservices architecture. Discover the tech debt management strategies and how to mitigate technical debt in Java.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h3><span style=\"font-weight: 400;\">Lessons Learned in Software Development<\/span><\/h3>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">During our transition to<\/span><b> microservices architecture<\/b><span style=\"font-weight: 400;\">, we encountered valuable lessons in software development. We worked in <\/span><b>SCRUM methodology<\/b><span style=\"font-weight: 400;\"> with bi-weekly sprint reviews, but faced challenges when features were delayed due to redundant functionality caused by the presence of old code in the <\/span><b>monolithic system<\/b><span style=\"font-weight: 400;\">. Through this experience, we realized the importance of removing old code and maintaining a <\/span><b>clean codebase<\/b><span style=\"font-weight: 400;\"> to prevent such issues.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h3><span style=\"font-weight: 400;\">Tech Debt Management Strategies<\/span><\/h3>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><b>Managing tech debt<\/b><span style=\"font-weight: 400;\"> is crucial for efficient software development.\u00a0\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">One of the strategies we employed was removing old code from the monolithic system to prevent redundant functionality and reduce technical debt.\u00a0<\/span><\/li>\n<li><span style=\"font-weight: 400;\">We also utilized <\/span><b>Domain-Driven Design (DDD) and Event Storming <\/b><span style=\"font-weight: 400;\">to gain a comprehensive understanding of our business logic and extract core domains for <\/span><b>microservices<\/b><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">These strategies helped us tackle tech debt and lay the foundation for a scalable and efficient system.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-4356\" src=\"https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155703195-570x268.png\" alt=\"\" width=\"570\" height=\"268\" srcset=\"https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155703195-570x268.png 570w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155703195-100x47.png 100w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155703195-400x188.png 400w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155703195.png 636w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h3><span style=\"font-weight: 400;\">Mitigating Technical Debt in Java<\/span><\/h3>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">When it comes to Java development, mitigating technical debt requires adhering to<\/span><b> best practices<\/b><span style=\"font-weight: 400;\">, leveraging appropriate design patterns, and utilizing frameworks like<\/span><b> Spring and Hibernate<\/b><span style=\"font-weight: 400;\">. Continuous monitoring, load testing, and performance optimization with tools like JProfiler are essential for identifying and addressing inefficiencies. <\/span><b>Comparative technological audits and event storming<\/b><span style=\"font-weight: 400;\"> can provide valuable insights into the system\u2019s architecture and help identify areas for improvement, ultimately reducing technical debt in Java projects.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">By adopting a proactive approach and <\/span><b>investing in tech debt reduction<\/b><span style=\"font-weight: 400;\">, companies can mitigate technical debt and ensure long-term optimization of their Java projects.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h2><span style=\"color: #1c55d9;\">Chapter 8<\/span><span style=\"font-weight: 400;\">: Scaling for Business Continuity and Cloud Migration<\/span><\/h2>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">In this chapter, we delve into the challenges of <\/span><b>scaling systems for business continuity and cloud migration<\/b><span style=\"font-weight: 400;\">. Discover the strategies and technologies employed to achieve scalability and ensure high-performing systems.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4358\" src=\"https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155754757.png\" alt=\"\" width=\"517\" height=\"342\" srcset=\"https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155754757.png 517w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155754757-100x66.png 100w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155754757-400x265.png 400w\" sizes=\"auto, (max-width: 517px) 100vw, 517px\" \/><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h3><span style=\"font-weight: 400;\">Lessons Learned in Scalability<\/span><\/h3>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">Scaling a system to handle larger volumes of traffic and users presents various challenges and complexities. We learned valuable lessons while dealing with <\/span><b>distributed systems, load balancing, and network latency<\/b><span style=\"font-weight: 400;\">. The importance of embracing the latest tools and techniques, such as <\/span><b>containerization, service meshes, and auto-scaling,<\/b><span style=\"font-weight: 400;\"> became evident during our scaling journey.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h3><span style=\"font-weight: 400;\">Building Resilient and High-Performing Systems<\/span><\/h3>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">To address scalability challenges,<\/span><b> we adopted horizontal scaling, containerization using Docker and Swarm, and virtualization of servers.<\/b><span style=\"font-weight: 400;\"> The introduction of DevOps tools like Ansible and Terraform helped convert the system to Infrastructure as Code, enabling easier management and scalability. We identified and implemented high-level improvements, such as job scheduling, cache optimization, and communication protocol enhancements, to overcome architectural limitations and improve system performance.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Through<\/span><b> large-scale disaster recovery tests<\/b><span style=\"font-weight: 400;\">, we ensured business continuity by removing single points of failure. This experience led us to develop services that assist clients in preparing recovery plans and scaling their systems to the cloud. Our holistic approach encompasses technology, people, process, and product to create migration plans, perform performance audits, and reduce tech debt.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h2 style=\"text-align: left;\"><span style=\"color: #1c55d9;\">Chapter 9<\/span><span style=\"font-weight: 400;\">: Migrating to Magento and Reducing Tech Debt<\/span><\/h2>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">In this chapter, we explore the<\/span><b> migration to Magento<\/b><span style=\"font-weight: 400;\"> and the process of reducing tech debt. Discover how we leveraged our expertise in architecture to integrate Magento with our system and facilitate a seamless transition<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h3><span style=\"font-weight: 400;\">Migrating to Magento: Overcoming Obstacles<\/span><\/h3>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">Integrating Magento with our legacy system proved challenging in previous attempts due to functional limitations and the monolithic architecture. However, in 2020, with the system\u2019s evolution towards microservices and the maturity of Magento, we seized the opportunity to initiate the migration process. By introducing an additional API layer and leveraging Axon, <\/span><b>we facilitated easy consumption of our microservices by Magento<\/b><span style=\"font-weight: 400;\">, enabling a seamless single sign-on experience for end-users.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h3><span style=\"font-weight: 400;\">Reducing Tech Debt Through Migration<\/span><\/h3>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">The migration to Magento presented an opportunity to reduce technical debt by transferring existing code to Magento features. Our expertise in architecture allowed us to guide clients in identifying suitable software for their future needs and reducing maintenance costs. We provide services that help clients make informed decisions and reduce technical debt across various domains.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Our company\u2019s experience in building modern enterprise systems enables us to propose mature architecture solutions, embracing best practices, monolithic and microservices, as well as PaaS and iPaaS solutions like <\/span><b>MuleSoft<\/b><span style=\"font-weight: 400;\">. With our flagship service <\/span><b>\u201cMigrate Monolith to Enterprise Software,\u201d<\/b><span style=\"font-weight: 400;\"> we assist clients in their modernization journey, optimizing their systems and reducing technical debt.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">By sharing our experiences and knowledge, we aim to contribute to the advancement of software development and the management of technical debt in the industry.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4102","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v19.0 (Yoast SEO v19.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>New Beginning with Microservices Architecture - Avra Software<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"New Beginning with Microservices Architecture\" \/>\n<meta property=\"og:url\" content=\"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/\" \/>\n<meta property=\"og:site_name\" content=\"Avra Software\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-14T13:59:33+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/avra.pl\/#website\",\"url\":\"https:\/\/avra.pl\/\",\"name\":\"Avra Software\",\"description\":\"Automatyzujemy procesy biznesowe i sprzeda\u017cowe\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/avra.pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/\",\"url\":\"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/\",\"name\":\"New Beginning with Microservices Architecture - Avra Software\",\"isPartOf\":{\"@id\":\"https:\/\/avra.pl\/#website\"},\"datePublished\":\"2023-06-16T09:53:56+00:00\",\"dateModified\":\"2023-08-14T13:59:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/avra.pl\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"New Beginning with Microservices Architecture\"}]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"New Beginning with Microservices Architecture - Avra Software","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:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/","og_locale":"en_US","og_type":"article","og_title":"New Beginning with Microservices Architecture","og_url":"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/","og_site_name":"Avra Software","article_modified_time":"2023-08-14T13:59:33+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/avra.pl\/#website","url":"https:\/\/avra.pl\/","name":"Avra Software","description":"Automatyzujemy procesy biznesowe i sprzeda\u017cowe","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/avra.pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/","url":"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/","name":"New Beginning with Microservices Architecture - Avra Software","isPartOf":{"@id":"https:\/\/avra.pl\/#website"},"datePublished":"2023-06-16T09:53:56+00:00","dateModified":"2023-08-14T13:59:33+00:00","breadcrumb":{"@id":"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/avra.pl\/en\/"},{"@type":"ListItem","position":2,"name":"New Beginning with Microservices Architecture"}]}]}},"_links":{"self":[{"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/pages\/4102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/comments?post=4102"}],"version-history":[{"count":6,"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/pages\/4102\/revisions"}],"predecessor-version":[{"id":4361,"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/pages\/4102\/revisions\/4361"}],"wp:attachment":[{"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/media?parent=4102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}