{"id":358,"date":"2026-08-21T07:04:19","date_gmt":"2026-08-21T07:04:19","guid":{"rendered":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/"},"modified":"2026-09-04T10:48:35","modified_gmt":"2026-09-04T10:48:35","slug":"mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide","status":"publish","type":"post","link":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/","title":{"rendered":"Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych"},"content":{"rendered":"<h2>Wst\u0119p<\/h2>\n<p>Architektura oprogramowania jest cz\u0119sto opisywana jako \u201eszkic&#8221; systemu, ale dla wielu pocz\u0105tkuj\u0105cych przek\u0142adanie abstrakcyjnych wymaga\u0144 na konkretne, komunikowalne diagramy pozostaje znacz\u0105c\u0105 przeszkod\u0105.<a href=\"https:\/\/www.visual-paradigm.com\/guide\/what-is-the-c4-model-a-comprehensive-guide-to-visualizing-software-architecture\/\">Model C4 (Kontekst, Kontenery, Komponenty i Kod)<\/a>sta\u0142 si\u0119 bran\u017cowym standardem wizualizacji architektury oprogramowania, poniewa\u017c traktuje diagramy architektoniczne jak mapy: przybli\u017caj\u0105c widok z poziomu og\u00f3lnego (jak mapa kraju) a\u017c do szczeg\u00f3\u0142\u00f3w na poziomie ulicy. Jednak\u017ce nauka notacji i r\u0119czne strukturyzowanie tych diagram\u00f3w mo\u017ce by\u0107 przyt\u0142aczaj\u0105ce.<\/p>\n<p>To w\u0142a\u015bnie tutaj<a href=\"https:\/\/ai-toolbox.visual-paradigm.com\/app\/chatbot\/\"><strong>Czatbot AI Visual Paradigm<\/strong><\/a>zmienia zasady gry. Dzi\u0119ki integracji generatywnego AI bezpo\u015brednio w \u015brodowisku modelowania, pocz\u0105tkuj\u0105cy mog\u0105 omin\u0105\u0107 strom\u0105 krzyw\u0105 nauki modelowania metod\u0105 przeci\u0105gnij i upu\u015b\u0107, a zamiast tego opisa\u0107 sw\u00f3j system w j\u0119zyku naturalnym, aby wygenerowa\u0107 dok\u0142adne, wielowarstwowe diagramy C4.<a href=\"https:\/\/online.visual-paradigm.com\/diagrams\/features\/c4-model-tool\/\">wielowarstwowe diagramy C4<\/a>. Co kluczowe, AI generuje standardowy<a href=\"https:\/\/www.visual-paradigm.com\/guide\/from-text-to-architecture-the-ultimate-guide-to-plantuml-visual-paradigm-and-ai-driven-uml\/\"><strong>kod PlantUML\/C4-PlantUML<\/strong><\/a>, co sprawia, \u017ce diagramy s\u0105 kontrolowane wersjonowanie, odtwarzalne i edytowalne.<\/p>\n<p id=\"AVucxbN\"><img loading=\"lazy\" alt=\"Visual Paradigm AI Chatbot: Od koncepcji do architektury C4\" class=\"alignnone wp-image-1017 size-full\" decoding=\"async\" height=\"572\" loading=\"lazy\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png\" srcset=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png 1024w, https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa-300x168.png 300w, https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa-768x429.png 768w\" width=\"1024\"\/><\/p>\n<p>Ten kompleksowy przewodnik wyja\u015bnia, jak wykorzysta\u0107 czatbot AI Visual Paradigm do budowania modeli C4, wykorzystuj\u0105c<strong>platform\u0119 bankowo\u015bci internetowej Lakeside Bank<\/strong>jako studium przypadku. Przejdziemy przez ka\u017cdy poziom modelu C4, wyja\u015bnimy przedstawione decyzje architektoniczne, podamy dok\u0142adny kod \u017ar\u00f3d\u0142owy PlantUML i poka\u017cemy, jak AI przyspiesza drog\u0119 od koncepcji do profesjonalnej dokumentacji.<\/p>\n<hr\/>\n<h2>Kluczowe poj\u0119cia: Model C4 i modelowanie wspomagane przez AI<\/h2>\n<p>Zanim przejdziemy do diagram\u00f3w, kluczowe jest zrozumienie podstawowych zasad, kt\u00f3re sprawiaj\u0105, \u017ce ten przep\u0142yw pracy jest skuteczny.<\/p>\n<h3>1. Hierarchia C4<\/h3>\n<p id=\"YaescPe\"><img loading=\"lazy\" alt=\"Narz\u0119dzie Visual Paradigm C4: Hierarchia C4 (4 poziomy)\" class=\"alignnone wp-image-1019 size-full\" decoding=\"async\" height=\"572\" loading=\"lazy\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87fa62c0d43.png\" srcset=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87fa62c0d43.png 1024w, https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87fa62c0d43-300x168.png 300w, https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87fa62c0d43-768x429.png 768w\" width=\"1024\"\/><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.visual-paradigm.com\/guide\/c4-context-diagram-the-best-way-for-beginners-to-visualize-software-architecture\/\"><strong>Poziom 1: Kontekst systemu:<\/strong><\/a>Pokazuje system oprogramowania jako czarn\u0105 skrzynk\u0119, jego u\u017cytkownik\u00f3w (aktor\u00f3w) oraz zewn\u0119trzne zale\u017cno\u015bci. Odpowiada na pytanie<em>\u201eJaki jest zakres i kto si\u0119 tym interesuje?\u201d<\/em><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.visual-paradigm.com\/guide\/mastering-software-architecture-visualization-a-comprehensive-guide-to-c4-container-diagrams\/\"><strong>Poziom 2: Kontener:<\/strong>\u00a0<\/a>Przybli\u017ca system, aby pokaza\u0107 jednostki wdra\u017calne (aplikacje webowe, bazy danych, mikrous\u0142ugi). Odpowiada na pytanie<em>\u201eJak system jest zbudowany technicznie?\u201d<\/em><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.visual-paradigm.com\/guide\/comprehensive-guide-c4-container-vs-component-diagrams\/\"><strong>Poziom 3: Komponent:<\/strong><\/a>Przybli\u017ca<em>pojedynczy<\/em>kontener, aby pokaza\u0107 wewn\u0119trzne modu\u0142y, klasy lub biblioteki. Odpowiada na pytanie<em>\u201eJak ten konkretny jednostka dzia\u0142a wewn\u0119trznie?\u201d<\/em><\/p>\n<\/li>\n<li>\n<p><strong><a href=\"https:\/\/www.visual-paradigm.com\/guide\/%F0%9F%93%98-c4-model-drilling-down-from-level-3-component-to-level-4-code-in-visual-paradigm\/\">Poziom 4: Kod<\/a>:<\/strong> (Opcjonalnie) Diagramy klas lub sekwencji UML przedstawiaj\u0105ce szczeg\u00f3\u0142y implementacji.<\/p>\n<\/li>\n<\/ul>\n<h3>2. Modelowanie architektury sterowane przez AI przy u\u017cyciu PlantUML<\/h3>\n<p>Czatbot AI Visual Paradigm dzia\u0142a jako <strong>wsp\u00f3\u0142pilot architektury<\/strong>. Zamiast wyszukiwa\u0107 kszta\u0142ty i r\u0119cznie rysowa\u0107 po\u0142\u0105czenia, podajesz AI wymagania. AI rozumie semantyk\u0119 C4 i generuje poprawny <code data-backticks=\"1\">C4-PlantUML<\/code> kod. Oznacza to:<\/p>\n<ul>\n<li>\n<p><strong>Przyjazny dla kontroli wersji:<\/strong> Diagramy istniej\u0105 jako pliki tekstowe w Twoim repozytorium Git obok kodu aplikacji.<\/p>\n<\/li>\n<li>\n<p><strong>Sp\u00f3jny styl:<\/strong> Makro takie jak <code data-backticks=\"1\">LAYOUT_WITH_LEGEND()<\/code> oraz <code data-backticks=\"1\">skinparam vpDiagramType<\/code> zapewniaj\u0105, \u017ce ka\u017cdy diagram automatycznie przestrzega standard\u00f3w zespo\u0142u.<\/p>\n<\/li>\n<li>\n<p><strong>Iteracyjne udoskonalanie:<\/strong> Mo\u017cesz poprosi\u0107 AI o zmodyfikowanie okre\u015blonych relacji lub dodanie kontener\u00f3w przez czat, a on wygeneruje czysty kod zamiast psu\u0107 r\u0119czny uk\u0142ad.<\/p>\n<\/li>\n<\/ul>\n<h3>3. Zarz\u0105dzanie granicami<\/h3>\n<p>Kluczow\u0105 koncepcj\u0105 w C4 jest <strong>Granica przedsi\u0119biorstwa<\/strong>. Ta wizualna grupa oddziela systemy, kt\u00f3re Tw\u00f3j zesp\u00f3\u0142 posiada i kontroluje, od zewn\u0119trznych system\u00f3w stron trzecich. Utrzymanie tego rozr\u00f3\u017cnienia na wszystkich poziomach przybli\u017cenia jest kluczowe dla zrozumienia ryzyka i powierzchni integracji. W PlantUML jest to wyra\u017anie kodowane za pomoc\u0105 <code data-backticks=\"1\">Enterprise_Boundary()<\/code> oraz <code data-backticks=\"1\">System_Boundary()<\/code> makr.<\/p>\n<hr\/>\n<h2>Poziom 1: Diagram kontekstu systemu \u2013 Okre\u015blanie zakresu<\/h2>\n<p>Pierwszym krokiem w ka\u017cdym zaanga\u017cowaniu C4 jest ustanowienie kontekstu. Korzystaj\u0105c z czatbota AI Visual Paradigm, pocz\u0105tkuj\u0105cy mo\u017ce wygenerowa\u0107 ten podstawowy diagram, po prostu opisuj\u0105c ekosystem platformy bankowej.<\/p>\n<p><img alt=\"Visual Paradigm AI Chatbot wy\u015bwietlaj\u0105cy wygenerowany diagram kontekstu systemu C4 dla platformy bankowo\u015bci internetowej.\" decoding=\"async\" src=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f44d1c49e.png\"\/><\/p>\n<h3>Co reprezentuje ten diagram<\/h3>\n<p>Jest to <strong>Diagram kontekstu systemu<\/strong>\u00a0\u2014 najwy\u017cszy poziom modelu C4. Pokazuje ca\u0142\u0105 platform\u0119 bankow\u0105 jako pojedynczy system (czarne pude\u0142ko) i koncentruje si\u0119 na\u00a0<strong>kto<\/strong>\u00a0wchodzi z nim w interakcje oraz\u00a0<strong>jakie zewn\u0119trzne zale\u017cno\u015bci<\/strong>\u00a0na kt\u00f3rych si\u0119 opiera.<\/p>\n<h3>Wyja\u015bnienie kluczowych wybor\u00f3w projektowych<\/h3>\n<ul>\n<li>\n<p><strong>Granica przedsi\u0119biorstwa (<code data-backticks=\"1\">Lakeside Bank<\/code>):<\/strong>\u00a0Wizualnie grupuje systemy nale\u017c\u0105ce do Twojego zespo\u0142u \u2014 sam\u0105 platform\u0119 i jej baz\u0119 danych \u2014 oddzielaj\u0105c je od szerszego ekosystemu oprogramowania.<\/p>\n<\/li>\n<li>\n<p><strong>R\u00f3\u017cnicowanie aktor\u00f3w:<\/strong>\u00a0<code data-backticks=\"1\">Osoba<\/code>\u00a0vs.\u00a0<code data-backticks=\"1\">Person_Ext<\/code>\u00a0rozr\u00f3\u017cnia u\u017cytkownik\u00f3w wewn\u0119trznych (personel operacyjny) od zewn\u0119trznych (klient\u00f3w).<\/p>\n<\/li>\n<li>\n<p><strong>Adnotacje technologiczne:<\/strong>\u00a0Etykiety na relacjach (<code data-backticks=\"1\">HTTPS<\/code>,\u00a0<code data-backticks=\"1\">SOAP\/XML<\/code>,\u00a0<code data-backticks=\"1\">OIDC<\/code>,\u00a0<code data-backticks=\"1\">JDBC<\/code>) dodaj\u0105 realistyczne szczeg\u00f3\u0142y integracji bez za\u015bmiecania diagramu.<\/p>\n<\/li>\n<li>\n<p><strong>Legenda samookre\u015blaj\u0105ca:<\/strong>\u00a0Wywo\u0142anie\u00a0<code data-backticks=\"1\">LAYOUT_WITH_LEGEND()<\/code>\u00a0dodaje legend\u0119 kszta\u0142t\u00f3w C4, dzi\u0119ki czemu diagram mo\u017cna udost\u0119pnia\u0107 osobom nieb\u0119d\u0105cym specjalistami technicznymi.<\/p>\n<\/li>\n<\/ul>\n<h3>Kod \u017ar\u00f3d\u0142owy PlantUML L1<\/h3>\n<p>Poni\u017cej znajduje si\u0119 dok\u0142adny kod wygenerowany przez bota czatowego AI Visual Paradigm dla tego diagramu. Zwr\u00f3\u0107 uwag\u0119 na u\u017cycie oficjalnej biblioteki standardowej C4-PlantUML oraz parametr\u00f3w skinparam specyficznych dla Visual Paradigm.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLN1Rk984BqZyG-rp668H896azEUXa1s9YCIh85eTazMsIvmA-rkgxiCmwpstxUwRGWXWWjsTTTxhwfUmHVFwBYfTB_t4VoBCZKwh40hGxol2QpZqlPxVoYJwwOWA9bh_-Tux71tir5SDbdZoUNMC1c-oMqrhZMQ07ZjkT0g6qzlhvCGUdwSZolqJ4v2wJHa_EAREbA_4XUqnaRpNtAyLBy9FjrUE9rQRHry-1m_ftUszKpXHfvMGV_qjh85wULUYAkEj3llz_gz-UIVnVCgNIsITBRu-JIyEeP-Fgo-fVFxh_TFin3jzrYn9cY1e4E2eeM2jMXPcD0rk4CZMZOWHRE48qr2pbipp1lFjY8tWa4RGNsyFktE1d8uBIb_yP2Xz2qdFu8Qz_Agj9PdTcZyMjAXieRs8q1JG8K6D-GXHrTus2g47MKoFBaZQJIuEcX8xt_n48jA6U49tB2eoI4hQpmi6TVh8E2RO6g1mpotZM6mDHaHEG8PiCnN6VOjxzfXKu0oM_AiDYtC8BRhNXhaQgSyfNU2KQ3R3pFX4_Gvlf1NHTkgmHNys-z1rzYXZKrCixOhSlb2LuFAYTPs9pLtdVF0LagdtK6sZnAbl9007MIevL1leSJ2gFK-I3v8c6N3GtvQP87cW3P3nWmz1UubMqUlt4VAqSdK0dkS5kQ13qebbrqa-o-qgEMB4ya5xQJegRmUIswl1T9LIR6CZnuqRJ3VorUn4NOkKOQqavAackFK3ahEXSG9dP3BA8ouMwmqUEWU8N5sA_5enqd3PGZdo1tOqMw7ydD7CHDrTq6sL5slXKyyYA_vmdv6NZU-JCKvjCCWOFcuX34a4eGdoshT9S7NzaPiFHdnk7Z_cbL5iXlUxsom_Nc_KPFZpeu_I9-itpkNFNkf9gnC51zt1h2kWwNYFgnMoJ801PXkUzvXF1vtq7TjSXJi6FVn7Sfv-blF_I3i2jevnIURM8W7eV6I4X2_p-wcbm3FB9LOBnO-TK4dKNwxSnMMlVMIVqLVBYR9-E_7-IM64z-yjKZuIpXMlNYONTHuDlmPQRKDgOjLqifhH_YcWUD9yj3Ez8iOGVu-_WS0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLN1Rk984BqZyG-rp668H896azEUXa1s9YCIh85eTazMsIvmA-rkgxiCmwpstxUwRGWXWWjsTTTxhwfUmHVFwBYfTB_t4VoBCZKwh40hGxol2QpZqlPxVoYJwwOWA9bh_-Tux71tir5SDbdZoUNMC1c-oMqrhZMQ07ZjkT0g6qzlhvCGUdwSZolqJ4v2wJHa_EAREbA_4XUqnaRpNtAyLBy9FjrUE9rQRHry-1m_ftUszKpXHfvMGV_qjh85wULUYAkEj3llz_gz-UIVnVCgNIsITBRu-JIyEeP-Fgo-fVFxh_TFin3jzrYn9cY1e4E2eeM2jMXPcD0rk4CZMZOWHRE48qr2pbipp1lFjY8tWa4RGNsyFktE1d8uBIb_yP2Xz2qdFu8Qz_Agj9PdTcZyMjAXieRs8q1JG8K6D-GXHrTus2g47MKoFBaZQJIuEcX8xt_n48jA6U49tB2eoI4hQpmi6TVh8E2RO6g1mpotZM6mDHaHEG8PiCnN6VOjxzfXKu0oM_AiDYtC8BRhNXhaQgSyfNU2KQ3R3pFX4_Gvlf1NHTkgmHNys-z1rzYXZKrCixOhSlb2LuFAYTPs9pLtdVF0LagdtK6sZnAbl9007MIevL1leSJ2gFK-I3v8c6N3GtvQP87cW3P3nWmz1UubMqUlt4VAqSdK0dkS5kQ13qebbrqa-o-qgEMB4ya5xQJegRmUIswl1T9LIR6CZnuqRJ3VorUn4NOkKOQqavAackFK3ahEXSG9dP3BA8ouMwmqUEWU8N5sA_5enqd3PGZdo1tOqMw7ydD7CHDrTq6sL5slXKyyYA_vmdv6NZU-JCKvjCCWOFcuX34a4eGdoshT9S7NzaPiFHdnk7Z_cbL5iXlUxsom_Nc_KPFZpeu_I9-itpkNFNkf9gnC51zt1h2kWwNYFgnMoJ801PXkUzvXF1vtq7TjSXJi6FVn7Sfv-blF_I3i2jevnIURM8W7eV6I4X2_p-wcbm3FB9LOBnO-TK4dKNwxSnMMlVMIVqLVBYR9-E_7-IM64z-yjKZuIpXMlNYONTHuDlmPQRKDgOjLqifhH_YcWUD9yj3Ez8iOGVu-_WS0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLN1Rjj65BmBq3zirKDbmB5GrAUUOajkuqQEX4Y6sro49t8jhRZS9NQNPSYYbo11lg78P_IQMwt_wZnIaYMv1geJyNOvCs_UFEgb3-H2dkfswplX4sKoSfGAhOmCPIQ5TM5fswrlb8bq7akn327pF_PwZegpXGhBV9vxwI9hWZJXBB9fBzDa6F253x5Myrx__CMOIxStmrvAFaY7qgpFRxmFPrbD_KWSotlATVW9nnDLIV7z-JEdVQkj4z_-KF_sx_oU3HGjy3Hb_VtprCPIJqeGfnlIpNcxrMuDBtuRtKvdqz5uDXZTlUcUx4ftrzDNi-7LprTl1bnjju8AMehDko9XgCI7NFWQEXUn9e56mxrrQIakoIIsiEilaH8ZmtOonbWwRqqtodsmgNIdelDQAnXtUDtRkGBcgeFpIGQduug49ntJgSZM7mXt74NBt2GA1LT9Nw8gCY2fXqynN5EY8bVnCua4ywLKrHSheI3RORP2vtD1cLO9HQk7lqGAJcqUFdLEjYfdL-z3b-9K6SXeIbABKIR1NQvCqsBE6aTpl_wGB_8LuX8AXGj6oTgXKqIAt491qFgBbd4L2XA5yDmKhbXVmOcYK_jxnSeofxoSNThSnEJAxXmK81XI8hr2-fYoSoB-QBU4Q4RQjRMvCxwfp8AbRcP0_p43LZksLK6OLL8xRzFQc8M6MVJmkLPDa5kKU2eBBjcwPJGth_6aYCfx1roMlPKnc7SfYY0x-5ay1yibmVe1cJ9QYjV0h9b152rjmKOrF8s6V_ukJflvWdY9qLkdC9807pqbqKenqv_iKKDMJoQoRh_hvkIWvRT8Wb4GN0TfK2duhw8Aaqiyy1UsAEkMybEHG8ChHMQz8gWeV0Mu11DgLB5OIDi9aYneJmj6Ox0U9TDOV52AYCJKhhzwIcifp7-Hewsoujxtqnd38eHJMyX1RFOimQU7Af5pdgeoI8r3n2eLA6Zh4oG-DWhDbkcHcYptozc2WYo85LrYNR6Pja1hDbLo_L5CRYQY9yQunyhkocP_LZ8spCaZNfBd4hPcznwBiuyUO06RtBwLUc-XdyJnTlqLCTgjcjfj89GZ6sgpUVmSMvRpQZeTJnYQWJVxzmJrtSx0UfTulzLUaD5Bi-zF08-H3bCxYYDulPrHfZm_OaJRl88liwcDy9t0xLy6b_tdS8_Y-MuBzfWXKEJLWeT8cq2g8_p9w6BS-_Lc-1p7NknkzsCYSdWU40taWuDqY3gw7Zoh-YWwTPXTLFslR1pwtRiONpVvU2bDZ3-vVm40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n' skinparam linetype ortho\r\n!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Context.puml\r\nskinparam defaultFontSize 14\r\nskinparam defaultFontColor #333333\r\nskinparam vpDiagramType C4modelSystemContextDiagram\r\n\r\nLAYOUT_TOP_DOWN()\r\nLAYOUT_WITH_LEGEND()\r\n\r\ntitle Diagram kontekstu systemu dla Platformy Bankowo\u015bci Online\r\n\r\nPerson(customer, \"Klient Bankowo\u015bci Osobistej\", \"Sprawdza salda, p\u0142aci rachunki, przesy\u0142a pieni\u0105dze i zarz\u0105dza kartami przez internet lub aplikacj\u0119 mobiln\u0105\")\r\nPerson_Ext(admin, \"Personel Operacyjny Banku\", \"Obs\u0142uguje otwieranie kont, skargi i \u015bledztwa w sprawie oszustw\")\r\n\r\nEnterprise_Boundary(bank, \"Lakeside Bank\") {\r\n  System(online_banking, \"Platforma Bankowo\u015bci Online\", \"Pozwala klientom przegl\u0105da\u0107 konta i wykonywa\u0107 operacje bankowe cyfrowo\")\r\n  SystemDb(accounts_db, \"Baza Danych Kont\", \"Przechowuje konta klient\u00f3w, salda i histori\u0119 transakcji\")\r\n}\r\n\r\nSystem_Ext(core_banking, \"System Bankowo\u015bci Rdzeniowej\", \"Dziedziczny ksi\u0119gowy banku, kt\u00f3ry posiada wszystkie salda kont i transakcje\")\r\nSystem_Ext(identity, \"Dostawca To\u017csamo\u015bci\", \"Autoryzuje i zarz\u0105dza danymi logowania klient\u00f3w oraz uwierzytelnianiem wielosk\u0142adnikowym\")\r\nSystem_Ext(push_gateway, \"Brama Powiadomie\u0144 SMS \/ Push\", \"Wysy\u0142a jednorazowe has\u0142a i powiadomienia o transakcjach\")\r\n\r\nRel(customer, online_banking, \"U\u017cywa aplikacji internetowych i mobilnych do\", \"HTTPS\")\r\nRel(admin, online_banking, \"Zarz\u0105dza sprawami i przegl\u0105da je przez\", \"HTTPS\")\r\nRel(online_banking, accounts_db, \"Odczytuje i zapisuje dane konta za pomoc\u0105\", \"JDBC\")\r\nRel(online_banking, core_banking, \"Zapisuje transakcje i uzgadnia ksi\u0119gi za pomoc\u0105\", \"SOAP\/XML\")\r\nRel(online_banking, identity, \"Uwierzytelnia u\u017cytkownik\u00f3w za pomoc\u0105\", \"OIDC\")\r\nRel(online_banking, push_gateway, \"Dostarcza jednorazowe has\u0142a i powiadomienia przez\", \"HTTPS\/API\")\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLN1Rjj65BmBq3zirKDbmB5GrAUUOajkuqQEX4Y6sro49t8jhRZS9NQNPSYYbo11lg78P_IQMwt_wZnIaYMv1geJyNOvCs_UFEgb3-H2dkfswplX4sKoSfGAhOmCPIQ5TM5fswrlb8bq7akn327pF_PwZegpXGhBV9vxwI9hWZJXBB9fBzDa6F253x5Myrx__CMOIxStmrvAFaY7qgpFRxmFPrbD_KWSotlATVW9nnDLIV7z-JEdVQkj4z_-KF_sx_oU3HGjy3Hb_VtprCPIJqeGfnlIpNcxrMuDBtuRtKvdqz5uDXZTlUcUx4ftrzDNi-7LprTl1bnjju8AMehDko9XgCI7NFWQEXUn9e56mxrrQIakoIIsiEilaH8ZmtOonbWwRqqtodsmgNIdelDQAnXtUDtRkGBcgeFpIGQduug49ntJgSZM7mXt74NBt2GA1LT9Nw8gCY2fXqynN5EY8bVnCua4ywLKrHSheI3RORP2vtD1cLO9HQk7lqGAJcqUFdLEjYfdL-z3b-9K6SXeIbABKIR1NQvCqsBE6aTpl_wGB_8LuX8AXGj6oTgXKqIAt491qFgBbd4L2XA5yDmKhbXVmOcYK_jxnSeofxoSNThSnEJAxXmK81XI8hr2-fYoSoB-QBU4Q4RQjRMvCxwfp8AbRcP0_p43LZksLK6OLL8xRzFQc8M6MVJmkLPDa5kKU2eBBjcwPJGth_6aYCfx1roMlPKnc7SfYY0x-5ay1yibmVe1cJ9QYjV0h9b152rjmKOrF8s6V_ukJflvWdY9qLkdC9807pqbqKenqv_iKKDMJoQoRh_hvkIWvRT8Wb4GN0TfK2duhw8Aaqiyy1UsAEkMybEHG8ChHMQz8gWeV0Mu11DgLB5OIDi9aYneJmj6Ox0U9TDOV52AYCJKhhzwIcifp7-Hewsoujxtqnd38eHJMyX1RFOimQU7Af5pdgeoI8r3n2eLA6Zh4oG-DWhDbkcHcYptozc2WYo85LrYNR6Pja1hDbLo_L5CRYQY9yQunyhkocP_LZ8spCaZNfBd4hPcznwBiuyUO06RtBwLUc-XdyJnTlqLCTgjcjfj89GZ6sgpUVmSMvRpQZeTJnYQWJVxzmJrtSx0UfTulzLUaD5Bi-zF08-H3bCxYYDulPrHfZm_OaJRl88liwcDy9t0xLy6b_tdS8_Y-MuBzfWXKEJLWeT8cq2g8_p9w6BS-_Lc-1p7NknkzsCYSdWU40taWuDqY3gw7Zoh-YWwTPXTLFslR1pwtRiONpVvU2bDZ3-vVm40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLN1Rk984BqZyG-rp668H896azEUXa1s9YCIh85eTazMsIvmA-rkgxiCmwpstxUwRGWXWWjsTTTxhwfUmHVFwBYfTB_t4VoBCZKwh40hGxol2QpZqlPxVoYJwwOWA9bh_-Tux71tir5SDbdZoUNMC1c-oMqrhZMQ07ZjkT0g6qzlhvCGUdwSZolqJ4v2wJHa_EAREbA_4XUqnaRpNtAyLBy9FjrUE9rQRHry-1m_ftUszKpXHfvMGV_qjh85wULUYAkEj3llz_gz-UIVnVCgNIsITBRu-JIyEeP-Fgo-fVFxh_TFin3jzrYn9cY1e4E2eeM2jMXPcD0rk4CZMZOWHRE48qr2pbipp1lFjY8tWa4RGNsyFktE1d8uBIb_yP2Xz2qdFu8Qz_Agj9PdTcZyMjAXieRs8q1JG8K6D-GXHrTus2g47MKoFBaZQJIuEcX8xt_n48jA6U49tB2eoI4hQpmi6TVh8E2RO6g1mpotZM6mDHaHEG8PiCnN6VOjxzfXKu0oM_AiDYtC8BRhNXhaQgSyfNU2KQ3R3pFX4_Gvlf1NHTkgmHNys-z1rzYXZKrCixOhSlb2LuFAYTPs9pLtdVF0LagdtK6sZnAbl9007MIevL1leSJ2gFK-I3v8c6N3GtvQP87cW3P3nWmz1UubMqUlt4VAqSdK0dkS5kQ13qebbrqa-o-qgEMB4ya5xQJegRmUIswl1T9LIR6CZnuqRJ3VorUn4NOkKOQqavAackFK3ahEXSG9dP3BA8ouMwmqUEWU8N5sA_5enqd3PGZdo1tOqMw7ydD7CHDrTq6sL5slXKyyYA_vmdv6NZU-JCKvjCCWOFcuX34a4eGdoshT9S7NzaPiFHdnk7Z_cbL5iXlUxsom_Nc_KPFZpeu_I9-itpkNFNkf9gnC51zt1h2kWwNYFgnMoJ801PXkUzvXF1vtq7TjSXJi6FVn7Sfv-blF_I3i2jevnIURM8W7eV6I4X2_p-wcbm3FB9LOBnO-TK4dKNwxSnMMlVMIVqLVBYR9-E_7-IM64z-yjKZuIpXMlNYONTHuDlmPQRKDgOjLqifhH_YcWUD9yj3Ez8iOGVu-_WS0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLN1Rk984BqZyG-rp668H896azEUXa1s9YCIh85eTazMsIvmA-rkgxiCmwpstxUwRGWXWWjsTTTxhwfUmHVFwBYfTB_t4VoBCZKwh40hGxol2QpZqlPxVoYJwwOWA9bh_-Tux71tir5SDbdZoUNMC1c-oMqrhZMQ07ZjkT0g6qzlhvCGUdwSZolqJ4v2wJHa_EAREbA_4XUqnaRpNtAyLBy9FjrUE9rQRHry-1m_ftUszKpXHfvMGV_qjh85wULUYAkEj3llz_gz-UIVnVCgNIsITBRu-JIyEeP-Fgo-fVFxh_TFin3jzrYn9cY1e4E2eeM2jMXPcD0rk4CZMZOWHRE48qr2pbipp1lFjY8tWa4RGNsyFktE1d8uBIb_yP2Xz2qdFu8Qz_Agj9PdTcZyMjAXieRs8q1JG8K6D-GXHrTus2g47MKoFBaZQJIuEcX8xt_n48jA6U49tB2eoI4hQpmi6TVh8E2RO6g1mpotZM6mDHaHEG8PiCnN6VOjxzfXKu0oM_AiDYtC8BRhNXhaQgSyfNU2KQ3R3pFX4_Gvlf1NHTkgmHNys-z1rzYXZKrCixOhSlb2LuFAYTPs9pLtdVF0LagdtK6sZnAbl9007MIevL1leSJ2gFK-I3v8c6N3GtvQP87cW3P3nWmz1UubMqUlt4VAqSdK0dkS5kQ13qebbrqa-o-qgEMB4ya5xQJegRmUIswl1T9LIR6CZnuqRJ3VorUn4NOkKOQqavAackFK3ahEXSG9dP3BA8ouMwmqUEWU8N5sA_5enqd3PGZdo1tOqMw7ydD7CHDrTq6sL5slXKyyYA_vmdv6NZU-JCKvjCCWOFcuX34a4eGdoshT9S7NzaPiFHdnk7Z_cbL5iXlUxsom_Nc_KPFZpeu_I9-itpkNFNkf9gnC51zt1h2kWwNYFgnMoJ801PXkUzvXF1vtq7TjSXJi6FVn7Sfv-blF_I3i2jevnIURM8W7eV6I4X2_p-wcbm3FB9LOBnO-TK4dKNwxSnMMlVMIVqLVBYR9-E_7-IM64z-yjKZuIpXMlNYONTHuDlmPQRKDgOjLqifhH_YcWUD9yj3Ez8iOGVu-_WS0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<blockquote>\n<p><strong>\ud83d\udca1 Wskaz\u00f3wka dla pocz\u0105tkuj\u0105cych:<\/strong>\u00a0Podczas tworzenia promptu dla poziomu 1, wyra\u017anie wymie\u0144 swoich aktor\u00f3w i systemy zewn\u0119trzne. Popro\u015b AI o \u201ezastosowanie stylizacji granic przedsi\u0119biorstwa\u201d oraz \u201edo\u0142\u0105czenie etykiet protoko\u0142\u00f3w do wszystkich relacji\u201d, aby zapewni\u0107 profesjonalny wynik zgodny z powy\u017cszym kodem.<\/p>\n<\/blockquote>\n<hr\/>\n<h2>Poziom 2: Diagram kontener\u00f3w \u2013 Otwarcie czarnej skrzynki<\/h2>\n<p>Gdy kontekst zostanie ustalony, nast\u0119pnym logicznym krokiem jest dekompozycja systemu na jego techniczne bloki budulcowe. Bot czatowy AI mo\u017ce przyj\u0105\u0107 kontekst poziomu 1 i rozwin\u0105\u0107 go w diagram kontener\u00f3w, zachowuj\u0105c odniesienia zewn\u0119trzne.<\/p>\n<p><img alt=\"Diagram kontekstu systemu dla platformy bankowo\u015bci internetowej pokazuj\u0105cy zewn\u0119trznych aktor\u00f3w i wewn\u0119trzne komponenty.\" decoding=\"async\" src=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f49caf752.png\"\/><br \/>\n<em>L2 \u2013 Diagram kontener\u00f3w<\/em><\/p>\n<p><img alt=\"Visual Paradigm wygenerowany przez AI diagram kontener\u00f3w C4 Poziomu 2 dla systemu platformy bankowo\u015bci internetowej.\" decoding=\"async\" src=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f4d34529a.png\"\/><\/p>\n<h3>Co si\u0119 zmieni\u0142o w por\u00f3wnaniu do poziomu 1<\/h3>\n<p>Pojedyncza \u201eczarna skrzynka\u201d Platformy Bankowo\u015bci Online z diagramu kontekstowego zosta\u0142a teraz otwarta, aby pokaza\u0107\u00a0<strong>jednostki nadaj\u0105ce si\u0119 do wdro\u017cenia<\/strong>\u00a0(kontenery):<\/p>\n<ul>\n<li>\n<p><strong>Frontendy:<\/strong>\u00a0<code data-backticks=\"1\">Aplikacja internetowa<\/code>,\u00a0<code data-backticks=\"1\">Aplikacja mobilna<\/code> oraz\u00a0<code data-backticks=\"1\">Konsola operacyjna<\/code>\u00a0ka\u017cda \u0142\u0105czy si\u0119 z bram\u0105 API, a nie bezpo\u015brednio z us\u0142ugami backendowymi.<\/p>\n<\/li>\n<li>\n<p><strong>Backendy:<\/strong>\u00a0Brama\u00a0<code data-backticks=\"1\">Brama API Bankowego<\/code>\u00a0kieruje ruch do trzech lekkich us\u0142ug:\u00a0<code data-backticks=\"1\">Uwierzytelnianie<\/code>,\u00a0<code data-backticks=\"1\">Transakcja<\/code>, oraz <code data-backticks=\"1\">Klient<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Trwa\u0142o\u015b\u0107 i komunikacja:<\/strong> Pojedynczy <code data-backticks=\"1\">PostgreSQL<\/code> baza danych oraz <code data-backticks=\"1\">RabbitMQ<\/code> magistrala zdarze\u0144 do przep\u0142ywu asynchronicznych powiadomie\u0144.<\/p>\n<\/li>\n<li>\n<p><strong>Sp\u00f3jno\u015b\u0107 zewn\u0119trzna:<\/strong> Systemy zewn\u0119trzne pozostaj\u0105 nienaruszone z Poziomu 1, teraz pod\u0142\u0105czone do konkretnych wewn\u0119trznych kontener\u00f3w.<\/p>\n<\/li>\n<\/ul>\n<h3>Notatki projektowe dla pocz\u0105tkuj\u0105cych<\/h3>\n<ul>\n<li>\n<p><strong>Widoczno\u015b\u0107 stosu technologicznego:<\/strong> Ka\u017cdy kontener zawiera sw\u00f3j stos technologiczny (React, Spring Boot, PostgreSQL). To w\u0142a\u015bnie jest celem Poziomu 2.<\/p>\n<\/li>\n<li>\n<p><strong>Asynchroniczne od\u0142\u0105czenie:<\/strong> Element <code data-backticks=\"1\">ContainerQueue(events_queue, \"Event Bus\", \"RabbitMQ\")<\/code> demonstruje asynchroniczn\u0105 komunikacj\u0119 mi\u0119dzy us\u0142ugami a bram\u0105 powiadomie\u0144.<\/p>\n<\/li>\n<li>\n<p><strong>Dyscyplina granic:<\/strong>\u00a0<code data-backticks=\"1\">Osoba<\/code>,\u00a0<code data-backticks=\"1\">Person_Ext<\/code>, oraz <code data-backticks=\"1\">System_Ext<\/code> elementy pozostaj\u0105 <strong>poza<\/strong> <code data-backticks=\"1\">System_Boundary<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3>Kod \u017ar\u00f3d\u0142owy PlantUML na poziomie L2<\/h3>\n<p>Zwr\u00f3\u0107 uwag\u0119, jak AI poprawnie u\u017cywa<code data-backticks=\"1\">Kontener<\/code>,\u00a0<code data-backticks=\"1\">Baza danych kontenera<\/code>, oraz<code data-backticks=\"1\">Kolejka kontenera<\/code> makr, oraz zachowuje sp\u00f3jne nazewnictwo alias\u00f3w z poziomu 1 dla cel\u00f3w \u015bledzenia.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLV1RkCs4BqRy3-mwM4Tm8vHDAUUrh7JJTeuLYm7QKy29Orb8XIfafIzRj5_xun4sRASDCbX8r6SUOypRnwpNwtZnfMvxFU-CFigLC4DpvaK2jo-0AQDs-X-xmUX4bccm3RE5VQNyTZmtLKctAQCImicqSg1SbU9piU5v8eIZgnBfOZ7q-jHG4lFyuTnpgq3WqlH52CuWfYheW8_GgUmvgLql-A6KFmDxAVhTxvEjTI6_VXpzTFUiorcWcVujA8JJAzpdO8y0Ffl_Lw_zp3vS_6yYbQB89ejNXu7buUbb_lLNVHm--tsSKQh_PuJJW9RA2eCk-4AmJA6vt9hRN8sOeVqh9K_06Er6YIbTJe7CsGNzGgNXnHJ_-q2FqutaBnQ5dCiLm9so0g-nrSX9JuxmvLTOpZBjOBza76Lifmhde5b2JUfPLl1sGvYx1dkmJ2uk6muHBVVtO2dkL28GzXiKO3XJcXbMUZuUaq4xZ2dn7GyINIf7DC5A2GvPDXNRAjGpjQuQyFBb0cr1Uj4LgUvgEeKxh73UNI3yIat-q6CM9ZvWR-25MbTkejBza-_nuur6o3hY1S5Rdn1_fEYa2AfiXAht_YMXuaHXMDZjWIUE5gTWHHRAeVR06igF5hpXAfgyHy9emABmp0lCgssnKRlKAt4j8rU5yiJc5Sln85Gn294q8bAZHOf6_okdQGIXZknTfUquH5fRi7Nky92GR3OTrVNk9dkGbQjY71ih9Q0QLhTcDQBb9pqUtxoUvmrGnggak3Py1NF3HMofLuofxqqK1cM6eezyqsrPrGAuJL1Z2V1FVl67UpulgazOeU5eOytMbSCRhyNcj8kRyCLHTG0e910GcYbsw1WDqOxAbTMQyReqk7B6JnkZkmsmRGJV4GNyQrd8PYjIE1z6erSfSweASZ8OfoV33G9GN9mM1IajK6brXNk4gW62_VX9yzZTLpvcCHKQvCAXIMpnnaTLbDByvl3OMWCOByJ8SMRD1e9UmwDBtnCODvuG1DH6BqMqdUzC824WFoaWpYB1uqaeZIcylitDkEEnwWRoXvewp83uTC3lOLOpJPKas3OCYr2RTMKRGHkDliE-bC99GnWI-M9_g8NqXMziflI4jQInx5myoTwdjYzIbYzkvAvqawilL1iov9IS90qvVstPKZaVmcIZ_neLfqpHokljrL3HqQ1grzGM93nP8-_qWmFwpOSBN57UDZRnYERWtVFNPMx1OxcXz9sUnfW_yW2exUuNfb_I_m-MTvjR6AWYkJIdckSdmnF1xmexIRAwh6cDix9rG9SP8-jGhO7FmI5DmhUD2CdSa0bMxlJTCbqsyib6EVDVmcoTTaTJVsPpABjYw8ozhlLAWWfyZJkn8xFGe-MscGOemCrMVmLrxNNmuoSkU5RL0x4QskSOhjjRNDumrQ362uUnoSXRSwVZ-hGR0VMtlv1EErl-USI7TRRBveD3fN5yxcgKDaoc9w4dRkUZsvB-BtWZbVvIEyx_mjz8DiQ1xp98UCDyzO5u0--k9-zaQ0hwKglYrLmgDUPDiwEV6f_UBzwUU-CEAj4INzIL6sOtKoxclrKkeCjVo9LnnU3CfR2RjfUuBsmBl5a_XIyUyftSxMd-FFfEYPAzuCzkTxeGguD4rCQ0OU6X8j9CFvZ_j2aFYNMwUVXpxlQNphC-hsls6_yZyD_\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLV1RkCs4BqRy3-mwM4Tm8vHDAUUrh7JJTeuLYm7QKy29Orb8XIfafIzRj5_xun4sRASDCbX8r6SUOypRnwpNwtZnfMvxFU-CFigLC4DpvaK2jo-0AQDs-X-xmUX4bccm3RE5VQNyTZmtLKctAQCImicqSg1SbU9piU5v8eIZgnBfOZ7q-jHG4lFyuTnpgq3WqlH52CuWfYheW8_GgUmvgLql-A6KFmDxAVhTxvEjTI6_VXpzTFUiorcWcVujA8JJAzpdO8y0Ffl_Lw_zp3vS_6yYbQB89ejNXu7buUbb_lLNVHm--tsSKQh_PuJJW9RA2eCk-4AmJA6vt9hRN8sOeVqh9K_06Er6YIbTJe7CsGNzGgNXnHJ_-q2FqutaBnQ5dCiLm9so0g-nrSX9JuxmvLTOpZBjOBza76Lifmhde5b2JUfPLl1sGvYx1dkmJ2uk6muHBVVtO2dkL28GzXiKO3XJcXbMUZuUaq4xZ2dn7GyINIf7DC5A2GvPDXNRAjGpjQuQyFBb0cr1Uj4LgUvgEeKxh73UNI3yIat-q6CM9ZvWR-25MbTkejBza-_nuur6o3hY1S5Rdn1_fEYa2AfiXAht_YMXuaHXMDZjWIUE5gTWHHRAeVR06igF5hpXAfgyHy9emABmp0lCgssnKRlKAt4j8rU5yiJc5Sln85Gn294q8bAZHOf6_okdQGIXZknTfUquH5fRi7Nky92GR3OTrVNk9dkGbQjY71ih9Q0QLhTcDQBb9pqUtxoUvmrGnggak3Py1NF3HMofLuofxqqK1cM6eezyqsrPrGAuJL1Z2V1FVl67UpulgazOeU5eOytMbSCRhyNcj8kRyCLHTG0e910GcYbsw1WDqOxAbTMQyReqk7B6JnkZkmsmRGJV4GNyQrd8PYjIE1z6erSfSweASZ8OfoV33G9GN9mM1IajK6brXNk4gW62_VX9yzZTLpvcCHKQvCAXIMpnnaTLbDByvl3OMWCOByJ8SMRD1e9UmwDBtnCODvuG1DH6BqMqdUzC824WFoaWpYB1uqaeZIcylitDkEEnwWRoXvewp83uTC3lOLOpJPKas3OCYr2RTMKRGHkDliE-bC99GnWI-M9_g8NqXMziflI4jQInx5myoTwdjYzIbYzkvAvqawilL1iov9IS90qvVstPKZaVmcIZ_neLfqpHokljrL3HqQ1grzGM93nP8-_qWmFwpOSBN57UDZRnYERWtVFNPMx1OxcXz9sUnfW_yW2exUuNfb_I_m-MTvjR6AWYkJIdckSdmnF1xmexIRAwh6cDix9rG9SP8-jGhO7FmI5DmhUD2CdSa0bMxlJTCbqsyib6EVDVmcoTTaTJVsPpABjYw8ozhlLAWWfyZJkn8xFGe-MscGOemCrMVmLrxNNmuoSkU5RL0x4QskSOhjjRNDumrQ362uUnoSXRSwVZ-hGR0VMtlv1EErl-USI7TRRBveD3fN5yxcgKDaoc9w4dRkUZsvB-BtWZbVvIEyx_mjz8DiQ1xp98UCDyzO5u0--k9-zaQ0hwKglYrLmgDUPDiwEV6f_UBzwUU-CEAj4INzIL6sOtKoxclrKkeCjVo9LnnU3CfR2RjfUuBsmBl5a_XIyUyftSxMd-FFfEYPAzuCzkTxeGguD4rCQ0OU6X8j9CFvZ_j2aFYNMwUVXpxlQNphC-hsls6_yZyD_\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLVDRjj64BuBq3jitKDbmB5GDAUU8bjka_f7iYN3RIx2YbnHAovtsVqnInQz1Cr317cCN7EBzLwTMKgaIDc6wukfvSxCDpFVV2EzCPPgwnBHxVn0JCnbIZLDYE2IsJnbH6cxLDtETrm6meMCBArDpS_zlgRPSSJjqisTOJfGqZ9fZmELz5D19JfyPMme-Bn_-lhL68zkBo_w2JMMQJYQdO85XI3wEFN1wz0XMr0dx2zmOS8BHdvy_SJRKoMK9j__vFzsxzodGquZU9fY1gUl4nKoKGNSlEjskfsBmH-Zs-biEXhFXgExgzvXTNJtRlfsTd7swzdL44-x7SkjO0GIiGkb4qhcLCOgK-lF0ISSajTGBvMn5Nb5DW58x8l2zBSl6NeOCssKx0NEM9KmVKGEpWM7eZLSAQFc76gqEe3tanIg71QK62f2UaJIzGSATpGDbax670vqmKmEfoG5J_pXOmZrugIWki1dIcBeBKsulrXKE8bmSsAPO0ib0MNoxOi60Fd1uHRaxEmlswDXmYMWA8-O82fb43fVoTn3TWXnD3Vh3ovoAs2ApJXSa9pvp8-0JLH7K1so_YmO8CCtoXIGVtRWQph98TDaTgAS3AdEU-WLV9x0Ft91OsPuo0uEoT_T3Y5L-tePcyzeciB5GIfuJ8CLtUa0HLI_qNiw2JHFBUcJ6qO3YwT3XLmFi2o-y2hZPCL22STQIHwexE4ZeHkV3vz8viiM2IWbcB739em46YNO7X9_B3qAFff0-84CjU8XwPqhAx2Waumlx25UkA8spoIjObRM95GDLcH4E-Xv2u5lq0n6poZ1a4x-YTPzyYXm1lPhSSSo-V39wWAQwOktO2j3l4UWtxRD8NXBD-rt2AfYbkJ0IgGdielxXiDJ6s3AiPqm2vGCnkysAR58RNi4Y83ZN4RaH2cFwpQ4RZnyIj7_pTbawkquOL71uWnPHfrLEYzyXuw8Yf1mGU5PXzs24Sap1nPQEMG3dBT1ERkScVi0WtdkqXsV_6baEqmNAYfT0yUPMU780VM5OfQcdaInKZhCfGVP2W-rbGQQm67AcYZAD_6p8CvBnmW2inKioqjPiB9aoaORG79y3Ge1nO71eoqKMn5gGIZdWZuT_tsbBAbM2oxAxgUQBPXc4XWCdqidWA0PSpZlqI20KRTc5ixzc8ERaCeyM7h-eFynT3_IR79zuJz1Yi5I-RvxXjM-ZqfDXE1BuAlI7EQrBc0pyhLZZlNOFSFGV-87rDO2-aCAcEo2hV_5Q3TqFkVsyjhdwS-HXDJaCbXwVIWaAoS2X8E6Ak5WYAtFOvrdVY8swWRX_zdHDnJJG6asG_v3DJ6wVzEOSUqL4bU8rwg2WsHYp9p41h83ncrazuZ4K06T0mu3E2Z9J07kOfY0iYPOAi1LbGCdO0SAYAg4RPPl5J4BW7jg_TNGn2F1y8Do8jogkKwmMz3XBVzt-W7N7Cf_aSDUWJSm7CdkKEH94qJgp78MKSiocbSQqIZiv1BLSmptl5xbvPxpUgrf0NKYIshmYE_O-IRKcSCm-4LpmyJEtgqNoEtwAtHkJsqnuDlfT3p1DTMqRQZ-4-QbM5TE-Y1XMqURdTfMxdgizZNr4JXL0gN0tkKG-GFs2iNIhte_mPFHLRzXjml-Vvgs43zctLmUx5blQBuZnEV077Ip_egxrezTBSbGN_GItOnF6_RxIhfrKpF_ATkM_kt7B-NDFMPVmTuT993YgBsUwWgCtWqViM_Dm3CKhnpj4Mgl24sD7OK1JEHsZ5DkMkLndi6hXu-1RzJmvBHD-HTxBIlsSfSjFHwxENm9GaT5fRsrkfHj65nUZvzC_0N-wWNn4eSjoNw_JRJQgw2ySBJLPrvtQJ8QZFk_NrviNJUXjTfUVokbWkb7ikrstZ0Pme-a_m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n' skinparam linetype ortho\r\n!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Container.puml\r\nskinparam defaultFontSize 14\r\nskinparam defaultFontColor #333333\r\nskinparam vpDiagramType C4modelContainerDiagram\r\n\r\nLAYOUT_TOP_DOWN()\r\nLAYOUT_WITH_LEGEND()\r\n\r\ntitle Platforma bankowo\u015bci internetowej - Diagram kontener\u00f3w\r\n\r\nPerson(customer, \"Klient bankowo\u015bci osobistej\", \"Sprawdza salda, p\u0142aci rachunki, przesy\u0142a pieni\u0105dze i zarz\u0105dza kartami przez internet lub telefon kom\u00f3rkowy\")\r\nPerson_Ext(admin, \"Personel operacyjny banku\", \"Obs\u0142uguje otwieranie kont, skargi i \u015bledzenie oszustw\")\r\n\r\nSystem_Boundary(bank, \"Bank Lakeside\") {\r\n  Container(web_app, \"Aplikacja internetowa\", \"JavaScript \/ React\", \"Dostarcza klientowi jednostronicow\u0105 aplikacj\u0119 w przegl\u0105darce)\r\n  Container(mobile_app, \"Aplikacja mobilna\", \"iOS \/ Android (Kotlin, Swift)\", \"Natywna aplikacja mobilna do bankowo\u015bci w ruchu)\r\n  Container(admin_console, \"Konsola operacyjna\", \"TypeScript \/ React\", \"Wewn\u0119trzny interfejs administracyjny dla personelu do zarz\u0105dzania sprawami i kontami)\r\n  Container(api, \"Brama API bankowego\", \"Java \/ Spring Boot\", \"Udost\u0119pnia REST API i egzekwuje autoryzacj\u0119, ograniczanie przep\u0142ywu i routowanie)\r\n  Container(auth_svc, \"Us\u0142uga autoryzacji\", \"Java \/ Spring Boot\", \"Obs\u0142uguje logowanie, sesje i wieloetapow\u0105 koordynacj\u0119)\r\n  Container(transaction_svc, \"Us\u0142uga transakcji\", \"Java \/ Spring Boot\", \"Koordynuje przelewy, p\u0142atno\u015bci rachunk\u00f3w i rozliczenia)\r\n  Container(customer_svc, \"Us\u0142uga klienta\", \"Java \/ Spring Boot\", \"Zarz\u0105dza profilami i preferencjami klient\u00f3w)\r\n  ContainerDb(accounts_db, \"Baza danych kont\", \"PostgreSQL\", \"Przechowuje konta klient\u00f3w, salda i histori\u0119 transakcji)\r\n  ContainerQueue(events_queue, \"Szyna zdarze\u0144\", \"RabbitMQ\", \"Zdarzenia asynchroniczne dla powiadomie\u0144 i wykrywania oszustw)\r\n}\r\n\r\nSystem_Ext(core_banking, \"System bankowo\u015bci rdzeniowej\", \"Dziedziczny ksi\u0119gowy banku, kt\u00f3ry posiada wszystkie salda kont i transakcje)\r\nSystem_Ext(identity, \"Dostawca to\u017csamo\u015bci\", \"Autoryzuje i zarz\u0105dza danymi logowania klient\u00f3w i uwierzytelnianiem wieloetapowym)\r\nSystem_Ext(push_gateway, \"Brama powiadomie\u0144 SMS \/ Push\", \"Wysy\u0142a jednorazowe has\u0142a i powiadomienia o transakcjach)\r\n\r\nRel(customer, web_app, \"U\u017cywa do bankowo\u015bci w\", \"HTTPS\")\r\nRel(customer, mobile_app, \"U\u017cywa do bankowo\u015bci w ruchu\", \"HTTPS\/API\")\r\nRel(admin, admin_console, \"Zarz\u0105dza sprawami i kontami w\", \"HTTPS\")\r\nRel(web_app, api, \"Wywo\u0142uje API przez\", \"JSON\/HTTPS\")\r\nRel(mobile_app, api, \"Wywo\u0142uje API przez\", \"JSON\/HTTPS\")\r\nRel(admin_console, api, \"Wywo\u0142uje API administracyjne przez\", \"JSON\/HTTPS\")\r\nRel(api, auth_svc, \"Kieruje \u017c\u0105dania autoryzacji do\", \"gRPC\")\r\nRel(api, transaction_svc, \"Kieruje transakcje do\", \"gRPC\")\r\nRel(api, customer_svc, \"Kieruje \u017c\u0105dania profilu do\", \"gRPC\")\r\nRel(auth_svc, identity, \"Deleguje autoryzacj\u0119 przez\", \"OIDC\")\r\nRel(auth_svc, push_gateway, \"Wysy\u0142a jednorazowe has\u0142a przez\", \"HTTPS\/API\")\r\nRel(transaction_svc, accounts_db, \"Odczytuje i zapisuje transakcje u\u017cywaj\u0105c\", \"JDBC\")\r\nRel(customer_svc, accounts_db, \"Odczytuje i zapisuje profile u\u017cywaj\u0105c\", \"JDBC\")\r\nRel(customer_svc, events_queue, \"Publikuje zdarzenia klient\u00f3w do\", \"AMQP\")\r\nRel(transaction_svc, events_queue, \"Publikuje zdarzenia transakcji do\", \"AMQP\")\r\nRel(transaction_svc, core_banking, \"Zapisuje i rozlicza wpisy ksi\u0119gi przez\", \"SOAP\/XML\")\r\nRel(events_queue, push_gateway, \"Dostarcza alert\u00f3w do\", \"AMQP\")\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLVDRjj64BuBq3jitKDbmB5GDAUU8bjka_f7iYN3RIx2YbnHAovtsVqnInQz1Cr317cCN7EBzLwTMKgaIDc6wukfvSxCDpFVV2EzCPPgwnBHxVn0JCnbIZLDYE2IsJnbH6cxLDtETrm6meMCBArDpS_zlgRPSSJjqisTOJfGqZ9fZmELz5D19JfyPMme-Bn_-lhL68zkBo_w2JMMQJYQdO85XI3wEFN1wz0XMr0dx2zmOS8BHdvy_SJRKoMK9j__vFzsxzodGquZU9fY1gUl4nKoKGNSlEjskfsBmH-Zs-biEXhFXgExgzvXTNJtRlfsTd7swzdL44-x7SkjO0GIiGkb4qhcLCOgK-lF0ISSajTGBvMn5Nb5DW58x8l2zBSl6NeOCssKx0NEM9KmVKGEpWM7eZLSAQFc76gqEe3tanIg71QK62f2UaJIzGSATpGDbax670vqmKmEfoG5J_pXOmZrugIWki1dIcBeBKsulrXKE8bmSsAPO0ib0MNoxOi60Fd1uHRaxEmlswDXmYMWA8-O82fb43fVoTn3TWXnD3Vh3ovoAs2ApJXSa9pvp8-0JLH7K1so_YmO8CCtoXIGVtRWQph98TDaTgAS3AdEU-WLV9x0Ft91OsPuo0uEoT_T3Y5L-tePcyzeciB5GIfuJ8CLtUa0HLI_qNiw2JHFBUcJ6qO3YwT3XLmFi2o-y2hZPCL22STQIHwexE4ZeHkV3vz8viiM2IWbcB739em46YNO7X9_B3qAFff0-84CjU8XwPqhAx2Waumlx25UkA8spoIjObRM95GDLcH4E-Xv2u5lq0n6poZ1a4x-YTPzyYXm1lPhSSSo-V39wWAQwOktO2j3l4UWtxRD8NXBD-rt2AfYbkJ0IgGdielxXiDJ6s3AiPqm2vGCnkysAR58RNi4Y83ZN4RaH2cFwpQ4RZnyIj7_pTbawkquOL71uWnPHfrLEYzyXuw8Yf1mGU5PXzs24Sap1nPQEMG3dBT1ERkScVi0WtdkqXsV_6baEqmNAYfT0yUPMU780VM5OfQcdaInKZhCfGVP2W-rbGQQm67AcYZAD_6p8CvBnmW2inKioqjPiB9aoaORG79y3Ge1nO71eoqKMn5gGIZdWZuT_tsbBAbM2oxAxgUQBPXc4XWCdqidWA0PSpZlqI20KRTc5ixzc8ERaCeyM7h-eFynT3_IR79zuJz1Yi5I-RvxXjM-ZqfDXE1BuAlI7EQrBc0pyhLZZlNOFSFGV-87rDO2-aCAcEo2hV_5Q3TqFkVsyjhdwS-HXDJaCbXwVIWaAoS2X8E6Ak5WYAtFOvrdVY8swWRX_zdHDnJJG6asG_v3DJ6wVzEOSUqL4bU8rwg2WsHYp9p41h83ncrazuZ4K06T0mu3E2Z9J07kOfY0iYPOAi1LbGCdO0SAYAg4RPPl5J4BW7jg_TNGn2F1y8Do8jogkKwmMz3XBVzt-W7N7Cf_aSDUWJSm7CdkKEH94qJgp78MKSiocbSQqIZiv1BLSmptl5xbvPxpUgrf0NKYIshmYE_O-IRKcSCm-4LpmyJEtgqNoEtwAtHkJsqnuDlfT3p1DTMqRQZ-4-QbM5TE-Y1XMqURdTfMxdgizZNr4JXL0gN0tkKG-GFs2iNIhte_mPFHLRzXjml-Vvgs43zctLmUx5blQBuZnEV077Ip_egxrezTBSbGN_GItOnF6_RxIhfrKpF_ATkM_kt7B-NDFMPVmTuT993YgBsUwWgCtWqViM_Dm3CKhnpj4Mgl24sD7OK1JEHsZ5DkMkLndi6hXu-1RzJmvBHD-HTxBIlsSfSjFHwxENm9GaT5fRsrkfHj65nUZvzC_0N-wWNn4eSjoNw_JRJQgw2ySBJLPrvtQJ8QZFk_NrviNJUXjTfUVokbWkb7ikrstZ0Pme-a_m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLV1RkCs4BqRy3-mwM4Tm8vHDAUUrh7JJTeuLYm7QKy29Orb8XIfafIzRj5_xun4sRASDCbX8r6SUOypRnwpNwtZnfMvxFU-CFigLC4DpvaK2jo-0AQDs-X-xmUX4bccm3RE5VQNyTZmtLKctAQCImicqSg1SbU9piU5v8eIZgnBfOZ7q-jHG4lFyuTnpgq3WqlH52CuWfYheW8_GgUmvgLql-A6KFmDxAVhTxvEjTI6_VXpzTFUiorcWcVujA8JJAzpdO8y0Ffl_Lw_zp3vS_6yYbQB89ejNXu7buUbb_lLNVHm--tsSKQh_PuJJW9RA2eCk-4AmJA6vt9hRN8sOeVqh9K_06Er6YIbTJe7CsGNzGgNXnHJ_-q2FqutaBnQ5dCiLm9so0g-nrSX9JuxmvLTOpZBjOBza76Lifmhde5b2JUfPLl1sGvYx1dkmJ2uk6muHBVVtO2dkL28GzXiKO3XJcXbMUZuUaq4xZ2dn7GyINIf7DC5A2GvPDXNRAjGpjQuQyFBb0cr1Uj4LgUvgEeKxh73UNI3yIat-q6CM9ZvWR-25MbTkejBza-_nuur6o3hY1S5Rdn1_fEYa2AfiXAht_YMXuaHXMDZjWIUE5gTWHHRAeVR06igF5hpXAfgyHy9emABmp0lCgssnKRlKAt4j8rU5yiJc5Sln85Gn294q8bAZHOf6_okdQGIXZknTfUquH5fRi7Nky92GR3OTrVNk9dkGbQjY71ih9Q0QLhTcDQBb9pqUtxoUvmrGnggak3Py1NF3HMofLuofxqqK1cM6eezyqsrPrGAuJL1Z2V1FVl67UpulgazOeU5eOytMbSCRhyNcj8kRyCLHTG0e910GcYbsw1WDqOxAbTMQyReqk7B6JnkZkmsmRGJV4GNyQrd8PYjIE1z6erSfSweASZ8OfoV33G9GN9mM1IajK6brXNk4gW62_VX9yzZTLpvcCHKQvCAXIMpnnaTLbDByvl3OMWCOByJ8SMRD1e9UmwDBtnCODvuG1DH6BqMqdUzC824WFoaWpYB1uqaeZIcylitDkEEnwWRoXvewp83uTC3lOLOpJPKas3OCYr2RTMKRGHkDliE-bC99GnWI-M9_g8NqXMziflI4jQInx5myoTwdjYzIbYzkvAvqawilL1iov9IS90qvVstPKZaVmcIZ_neLfqpHokljrL3HqQ1grzGM93nP8-_qWmFwpOSBN57UDZRnYERWtVFNPMx1OxcXz9sUnfW_yW2exUuNfb_I_m-MTvjR6AWYkJIdckSdmnF1xmexIRAwh6cDix9rG9SP8-jGhO7FmI5DmhUD2CdSa0bMxlJTCbqsyib6EVDVmcoTTaTJVsPpABjYw8ozhlLAWWfyZJkn8xFGe-MscGOemCrMVmLrxNNmuoSkU5RL0x4QskSOhjjRNDumrQ362uUnoSXRSwVZ-hGR0VMtlv1EErl-USI7TRRBveD3fN5yxcgKDaoc9w4dRkUZsvB-BtWZbVvIEyx_mjz8DiQ1xp98UCDyzO5u0--k9-zaQ0hwKglYrLmgDUPDiwEV6f_UBzwUU-CEAj4INzIL6sOtKoxclrKkeCjVo9LnnU3CfR2RjfUuBsmBl5a_XIyUyftSxMd-FFfEYPAzuCzkTxeGguD4rCQ0OU6X8j9CFvZ_j2aFYNMwUVXpxlQNphC-hsls6_yZyD_\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLV1RkCs4BqRy3-mwM4Tm8vHDAUUrh7JJTeuLYm7QKy29Orb8XIfafIzRj5_xun4sRASDCbX8r6SUOypRnwpNwtZnfMvxFU-CFigLC4DpvaK2jo-0AQDs-X-xmUX4bccm3RE5VQNyTZmtLKctAQCImicqSg1SbU9piU5v8eIZgnBfOZ7q-jHG4lFyuTnpgq3WqlH52CuWfYheW8_GgUmvgLql-A6KFmDxAVhTxvEjTI6_VXpzTFUiorcWcVujA8JJAzpdO8y0Ffl_Lw_zp3vS_6yYbQB89ejNXu7buUbb_lLNVHm--tsSKQh_PuJJW9RA2eCk-4AmJA6vt9hRN8sOeVqh9K_06Er6YIbTJe7CsGNzGgNXnHJ_-q2FqutaBnQ5dCiLm9so0g-nrSX9JuxmvLTOpZBjOBza76Lifmhde5b2JUfPLl1sGvYx1dkmJ2uk6muHBVVtO2dkL28GzXiKO3XJcXbMUZuUaq4xZ2dn7GyINIf7DC5A2GvPDXNRAjGpjQuQyFBb0cr1Uj4LgUvgEeKxh73UNI3yIat-q6CM9ZvWR-25MbTkejBza-_nuur6o3hY1S5Rdn1_fEYa2AfiXAht_YMXuaHXMDZjWIUE5gTWHHRAeVR06igF5hpXAfgyHy9emABmp0lCgssnKRlKAt4j8rU5yiJc5Sln85Gn294q8bAZHOf6_okdQGIXZknTfUquH5fRi7Nky92GR3OTrVNk9dkGbQjY71ih9Q0QLhTcDQBb9pqUtxoUvmrGnggak3Py1NF3HMofLuofxqqK1cM6eezyqsrPrGAuJL1Z2V1FVl67UpulgazOeU5eOytMbSCRhyNcj8kRyCLHTG0e910GcYbsw1WDqOxAbTMQyReqk7B6JnkZkmsmRGJV4GNyQrd8PYjIE1z6erSfSweASZ8OfoV33G9GN9mM1IajK6brXNk4gW62_VX9yzZTLpvcCHKQvCAXIMpnnaTLbDByvl3OMWCOByJ8SMRD1e9UmwDBtnCODvuG1DH6BqMqdUzC824WFoaWpYB1uqaeZIcylitDkEEnwWRoXvewp83uTC3lOLOpJPKas3OCYr2RTMKRGHkDliE-bC99GnWI-M9_g8NqXMziflI4jQInx5myoTwdjYzIbYzkvAvqawilL1iov9IS90qvVstPKZaVmcIZ_neLfqpHokljrL3HqQ1grzGM93nP8-_qWmFwpOSBN57UDZRnYERWtVFNPMx1OxcXz9sUnfW_yW2exUuNfb_I_m-MTvjR6AWYkJIdckSdmnF1xmexIRAwh6cDix9rG9SP8-jGhO7FmI5DmhUD2CdSa0bMxlJTCbqsyib6EVDVmcoTTaTJVsPpABjYw8ozhlLAWWfyZJkn8xFGe-MscGOemCrMVmLrxNNmuoSkU5RL0x4QskSOhjjRNDumrQ362uUnoSXRSwVZ-hGR0VMtlv1EErl-USI7TRRBveD3fN5yxcgKDaoc9w4dRkUZsvB-BtWZbVvIEyx_mjz8DiQ1xp98UCDyzO5u0--k9-zaQ0hwKglYrLmgDUPDiwEV6f_UBzwUU-CEAj4INzIL6sOtKoxclrKkeCjVo9LnnU3CfR2RjfUuBsmBl5a_XIyUyftSxMd-FFfEYPAzuCzkTxeGguD4rCQ0OU6X8j9CFvZ_j2aFYNMwUVXpxlQNphC-hsls6_yZyD_\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<blockquote>\n<p><strong>\ud83d\udca1 Wskaz\u00f3wka dla pocz\u0105tkuj\u0105cych:<\/strong> Popro\u015b AI Visual Paradigm o \u201ewygenerowanie diagramu kontener\u00f3w na podstawie mojego diagramu kontekstowego\u201d, aby zachowa\u0107 sp\u00f3jno\u015b\u0107 alias\u00f3w. Okre\u015bl sw\u00f3j stos technologiczny w poleceniu, aby uzyska\u0107 dok\u0142adne adnotacje technologiczne w trzecim parametrze ka\u017cdego<code data-backticks=\"1\">Container()<\/code> makra.<\/p>\n<\/blockquote>\n<hr\/>\n<h2>Poziom 3: Diagram komponent\u00f3w \u2013 Wewn\u0105trz bramy<\/h2>\n<p>Poziom 3 jest miejscem, gdzie wielu pocz\u0105tkuj\u0105cych ma trudno\u015bci, poniewa\u017c wymaga dekompozycji<em>jednego konkretnego kontenera<\/em> przy traktowaniu wszystkiego innego jako nieprzezroczystego kontekstu. Chatbot AI wyr\u00f3\u017cnia si\u0119 tutaj, generuj\u0105c skupione widoki komponent\u00f3w z poprawnym<code data-backticks=\"1\">Container_Boundary<\/code> zakresem.<\/p>\n<p><img alt=\"Diagram komponent\u00f3w Bramki API Bankowej pokazuj\u0105cy interakcje mi\u0119dzy Us\u0142ug\u0105 Obs\u0142ugi Klienta, Us\u0142ug\u0105 Transakcji i Us\u0142ug\u0105 Autoryzacji.\" decoding=\"async\" src=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f503614ba.png\"\/><br \/>\n<em>L3 \u2013 Diagram komponent\u00f3w \u2013 Brama API bankowego (Kontener)<\/em><\/p>\n<p><img alt=\"Visual Paradigm diagram komponent\u00f3w wygenerowany przez AI pokazuj\u0105cy wewn\u0119trzn\u0105 struktur\u0119 Bramki API Bankowej z API Routerem i filtrem autoryzacji.\" decoding=\"async\" src=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f5499ecf9.png\"\/><\/p>\n<h3>Co pokazuje ten diagram poziomu 3<\/h3>\n<p>To przybli\u017ca<strong>Bram\u0119 API bankowego<\/strong> kontener i dekomponuje go na jego wewn\u0119trzne komponenty oprogramowania. Zgodnie z wytycznymi C4 wybiera <strong>jeden<\/strong> kontener do dekompozycji \u2014 interfejsy frontowe i us\u0142ugi downstreamowe pozostaj\u0105 jako nieprzezroczysty kontekst wok\u00f3\u0142 niego.<\/p>\n<h3>Wewn\u0119trzna struktura bramki<\/h3>\n<ul>\n<li>\n<p><strong><code data-backticks=\"1\">Router API<\/code> (Spring Cloud Gateway):<\/strong> Przekierowuje przychodz\u0105ce \u017c\u0105dania do us\u0142ug downstreamowych.<\/p>\n<\/li>\n<li>\n<p><strong><code data-backticks=\"1\">Filtr autoryzacji i limitu cz\u0119stotliwo\u015bci<\/code>:<\/strong> Waliduje tokeny JWT, egzekwuje limity cz\u0119stotliwo\u015bci (Resilience4j) i sprawdza uprawnienia.<\/p>\n<\/li>\n<li>\n<p><strong><code data-backticks=\"1\">Pami\u0119\u0107 podr\u0119czna sesji<\/code> (Redis):<\/strong> Optymalizacja op\u00f3\u017anie\u0144 dla kontroli autoryzacji.<\/p>\n<\/li>\n<li>\n<p><strong><code data-backticks=\"1\">Rozproszony \u015bledzenie<\/code> (OpenTelemetry):<\/strong> Widoczno\u015b\u0107 (observability) zintegrowana z tras\u0105 routingu.<\/p>\n<\/li>\n<li>\n<p><strong><code data-backticks=\"1\">Obs\u0142uga b\u0142\u0119d\u00f3w<\/code>:<\/strong> Normalizuje b\u0142\u0119dy na sp\u00f3jne odpowiedzi HTTP.<\/p>\n<\/li>\n<\/ul>\n<h3>Kod \u017ar\u00f3d\u0142owy PlantUML na poziomie L3<\/h3>\n<p>Na poziomie 3 zwr\u00f3\u0107 uwag\u0119 na u\u017cycie <code data-backticks=\"1\">Component()<\/code> makr wewn\u0105trz <code data-backticks=\"1\">Container_Boundary()<\/code> Zewn\u0119trzne kontenery s\u0105 referencjonowane bez ponownej definicji ich wewn\u0119trzno\u015bci, zachowuj\u0105c w\u0142a\u015bciwy poziom abstrakcji.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:dLRVRo8t47v7ud-OKgcNIE5GrJprwSWckN0Y2GBIg4_8h0TmyTgkxOLoLV_tc_4kiE6IKrHUm6FFDzzyyoFv5ABmiInqk_K1mbeP9xmeG2k3SUSGh8yhssxzf4okIucmYj65ttizBxOVbogkodaPqEVMH3JnOswBdjF2C60tHAdLl9TTTaTiUheVzWeH8deopJ9RE6lOnwNWnz0I5wBKyPOW9-ehmg-NRzncLbiFF_-MFiqt6tUjn99-JJc3xBAm4lKXO7tNRhLRm_wVZq_JsVDWUZSRtdo-URW-EsTxL56Juzu3PEK22uet56iCYfIu4cODtVIbp1Bwem5y5X6tOiSG6H4K9A8_s-9y9foxWCuppg7ld5QvYCgQ3fd6AF88ar6V3nF2qTXrOeamztPBmW9v0YaiORw3l0pH5kX3vxmPeB1pfR6ESPyE78OHrUC4Uj0tqbibsV10aJS8bSjxm8Kib9bHVOFLI02F3drY7qYVP3oamJy6r0VU20t93vu61tpgiyMYS_v2czcLBOqKVdScd9ejjmJmYfoTS_YttO9ZFSwyBICzekVyR4mdz4b0vzatqxQK1s-cnoy2K0_RWXzu_Bl440D42t65a5llaUeWxTQ4w95AJTflL8vCk1bPb74rMoXD0JawdU0N65Eaxb0LAi9jkcfmcM1UUXLtL8OnzOrMQ7Ay_8jV_26qaeA9VNcU4fKrcd31DQ570KXbf34aK3OQ2VaAytK0qhzG8N05Jib5B_9Abcj5QQWvPIrXMbaxLV7C53KM67qI9kF4TU9mq4JateQm5o2afhTpFWfg6ahbD6mkY1fdZ8aMP7okkaAgaCAm9TGffcH2_PQwWjAaCWI7nBLqm0hNkPu6Gk-jdwt8NoVvR_WCTzMveVcLjQaP7wmlIEEl53gvKew1e2Xsub08HnV_vEYgVYOMTzFfA74g0pM5n4JXlvVpd5eWRFAw_aIidcUgTTKptpEfE0RGTgdCnJxxggxtjttQiYnGh2RhvG2IqGIQBhgeeqwFbX-4pAprKfbKsuIneDc-02gX1YTs1V6k6ujQtvgSIljAzFrMg4DdzV47SU-5eVqL3li4dBSqCBNcpYFnu1a8rIuOepvkoEDSJz38a9P0OrOP_ilayQ77PPgmFtitrz__0ZXPSQSOrIPx5zB1zUMQg9O2zTe6_MwFGek7dYzNZ7HWqdJRZnNjLbc9jwL5Wk5aTfHv4-6u3svuZT2C2RCd_ntbu-C1xy0oDSY1R2wq3h2bF_XDvvE1F2etnbXwYcNs4oWRixTHubK6ZS6g5tRQ1IUgByUZx3No9qDI8pGktWLqqkyrIjt2Ro6qMv-eK-ZVc6y0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:dLRVRo8t47v7ud-OKgcNIE5GrJprwSWckN0Y2GBIg4_8h0TmyTgkxOLoLV_tc_4kiE6IKrHUm6FFDzzyyoFv5ABmiInqk_K1mbeP9xmeG2k3SUSGh8yhssxzf4okIucmYj65ttizBxOVbogkodaPqEVMH3JnOswBdjF2C60tHAdLl9TTTaTiUheVzWeH8deopJ9RE6lOnwNWnz0I5wBKyPOW9-ehmg-NRzncLbiFF_-MFiqt6tUjn99-JJc3xBAm4lKXO7tNRhLRm_wVZq_JsVDWUZSRtdo-URW-EsTxL56Juzu3PEK22uet56iCYfIu4cODtVIbp1Bwem5y5X6tOiSG6H4K9A8_s-9y9foxWCuppg7ld5QvYCgQ3fd6AF88ar6V3nF2qTXrOeamztPBmW9v0YaiORw3l0pH5kX3vxmPeB1pfR6ESPyE78OHrUC4Uj0tqbibsV10aJS8bSjxm8Kib9bHVOFLI02F3drY7qYVP3oamJy6r0VU20t93vu61tpgiyMYS_v2czcLBOqKVdScd9ejjmJmYfoTS_YttO9ZFSwyBICzekVyR4mdz4b0vzatqxQK1s-cnoy2K0_RWXzu_Bl440D42t65a5llaUeWxTQ4w95AJTflL8vCk1bPb74rMoXD0JawdU0N65Eaxb0LAi9jkcfmcM1UUXLtL8OnzOrMQ7Ay_8jV_26qaeA9VNcU4fKrcd31DQ570KXbf34aK3OQ2VaAytK0qhzG8N05Jib5B_9Abcj5QQWvPIrXMbaxLV7C53KM67qI9kF4TU9mq4JateQm5o2afhTpFWfg6ahbD6mkY1fdZ8aMP7okkaAgaCAm9TGffcH2_PQwWjAaCWI7nBLqm0hNkPu6Gk-jdwt8NoVvR_WCTzMveVcLjQaP7wmlIEEl53gvKew1e2Xsub08HnV_vEYgVYOMTzFfA74g0pM5n4JXlvVpd5eWRFAw_aIidcUgTTKptpEfE0RGTgdCnJxxggxtjttQiYnGh2RhvG2IqGIQBhgeeqwFbX-4pAprKfbKsuIneDc-02gX1YTs1V6k6ujQtvgSIljAzFrMg4DdzV47SU-5eVqL3li4dBSqCBNcpYFnu1a8rIuOepvkoEDSJz38a9P0OrOP_ilayQ77PPgmFtitrz__0ZXPSQSOrIPx5zB1zUMQg9O2zTe6_MwFGek7dYzNZ7HWqdJRZnNjLbc9jwL5Wk5aTfHv4-6u3svuZT2C2RCd_ntbu-C1xy0oDSY1R2wq3h2bF_XDvvE1F2etnbXwYcNs4oWRixTHubK6ZS6g5tRQ1IUgByUZx3No9qDI8pGktWLqqkyrIjt2Ro6qMv-eK-ZVc6y0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:dLR1JYD74BrRyZzKo25OWhMYSCffZNTXMLXiOIEKlLZjwSPkJqzNgxk7qKoK2mhADw3zZ5ovnVwlLCyOpzX04eLJKptzwbNLUmNldMVMfubgjtu05qjjc6K9AAc5puq0j7wExTPtKaSgvGBctXltSxThMVPk9lqydQPEs0Yr5zg_Yp3f6iLq03nqdYivxVQF3eSXTFtbefimvuMbqAIFYK4TtfWoUPsQYrkMAdz2a2DP2FZnw8tRFYgqyFrFvK_pcplpGR8PdSQXWlvHWboeJSBrNRlLRbtqVXbSZoStP-DFaukFfnylF-ntGjnBhmIiFuJu-ULVVsR05OCB5WidgHd7JCTm2CVqLSoWDpmh8vZXwbia0r2VQ39gfTtFn7J2Z3c0lPvHCcRHWi6Dc6B6zYXs9LZaOJJiXLy-2wxHUOjQHdGFRFF0s4BCrFA1Cnk7ctJrb6TCLnS5n4fMBFSwpTG9JgKIBx9_2M5TffU34NIXfxb5oKFWalayqytKIVNrVqp9U2BrX5JXK0d2EozF30P6M1Rb2rrN7Gut8jFBHsyBdOCa9TbRiN1GWaXgHFaYVqwThrCJbAEngBtELgSdnvXgQb2-puoSp3A2Vtq-UntujTq2s0XZtsBgfPu5PdGIDhm8z4R6KXZw2bCEfyoBZEKXFYGUiHGMitGX0giycYClbW-HWDLJ69EM33X2jhfd8MKc5f2wrNqwanJEDDKcM88K3aKqgR3KpoUtKX4BIdH21miKGviND0u9aXoQI9z2L2mVdKUlvBggckz8HAcLFgVHNf5UmwGYSRGe6ywKv86qnrXGHp_VZ0-0O5o8bSZv2sJAwGpPdXUaWd3G12ZPBlCmhkSc5iQYAoWEgszAy8A-5o4zoK2FXHA9yBRiv3bQeKBkkcs9N3xo8b_tYoMoj5uaL71X9Zb6XQvuxUEKLj0T8u4IxyukeOX5yw318GkGop_08BVBHthEm0cta9KKkNJXS9pUecrqXehsJ5SV7W2RbkhBdP725Jc1nQGxIo9lJcUNWR0MxMJED5VbE0VJgYQOhkwfoE2UUch7YAKdBj4cDAKYS45kC9FKG5a_8MO9C-4sonVB1nzBe89Yv7bWx5ENmgVnU1Yu_BQzYafjkRk8abolYVGQv5zIMVCjjO4pMZmqneEo9O9On8YMvvhUBX_XoqblUnEG7BGZcqlKEpd7vKtyUihp2dJjAv9AbX-08HlvzT19PVDKnrKZB1PAHiMp7EliKKeAJcWfRAS-BxSMUoNlLsR9lq7Y95toNz3TPiTH9cF5hR1af0NTL9ldIgXwkzShv2PtEV5jA3hi7uxbXXyDBhjXEgC04G2QE_h_OkmitN-3sLwlj9dUmjq0lRAKme1YjdhYjNMhYHK1QyEi-V3PZmCU5RbFImqLjAlBtLER3R8t4UeLSofeok4TAS2Gk_rw8pX3skgiAtfHH_t-BApWDA7nLaQYJNTVDgWgPlKx12LWWj7oeGcru-YwrLypmcP0gwboRp3BbdyDlkZETdyhfMx_QQa7r_mRK5KtknhsNwjmntLl0VgD2_y9RyT7Ru5LdabtaDgjzq9p-Y_lRm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n' skinparam linetype ortho\r\n!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Component.puml\r\nskinparam defaultFontSize 14\r\nskinparam defaultFontColor #333333\r\nskinparam vpDiagramType C4modelComponentDiagram\r\n\r\nLAYOUT_WITH_LEGEND()\r\n\r\ntitle Diagram komponent\u00f3w dla Lakeside Bank - Bramka API Bankowo\u015bci\r\n\r\nContainer(web_app, \"Aplikacja Webowa\", \"React SPA\", \"Jednostronicowa aplikacja przegl\u0105darkowa u\u017cywana przez klient\u00f3w\")\r\nContainer(mobile_app, \"Aplikacja Mobilna\", \"iOS \/ Android\", \"Natywna aplikacja mobilna u\u017cywana przez klient\u00f3w\")\r\nContainer(admin_console, \"Konsola Operacyjna\", \"React\", \"Wewn\u0119trzny interfejs administracyjny u\u017cywany przez personel\")\r\n\r\nContainer_Boundary(api_gw, \"Bramka API Bankowo\u015bci\") {\r\n  Component(routing, \"Router API\", \"Spring Cloud Gateway\", \"Przekierowuje przychodz\u0105ce \u017c\u0105dania do w\u0142a\u015bciwej us\u0142ugi downstreamowej\")\r\n  Component(auth_filter, \"Filtr autoryzacji i limitu cz\u0119stotliwo\u015bci\", \"Spring Security \/ Resilience4j\", \"Waliduje tokeny JWT, stosuje limity cz\u0119stotliwo\u015bci i sprawdza uprawnienia\")\r\n  Component(tracing, \"Rozproszone \u015bledzenie\", \"OpenTelemetry\", \"Koreluje \u017c\u0105dania mi\u0119dzy us\u0142ugami dla cel\u00f3w widoczno\u015bci (observability)\")\r\n  Component(cache, \"Pami\u0119\u0107 podr\u0119czna sesji\", \"Redis\", \"Buforuje tokeny i stan sesji, aby przyspieszy\u0107 kontrole autoryzacji\")\r\n  Component(error_handler, \"Obs\u0142uga b\u0142\u0119d\u00f3w\", \"Spring Boot\", \"Normalizuje odpowiedzi b\u0142\u0119d\u00f3w i mapuje wyj\u0105tki na kody statusu HTTP\")\r\n}\r\n\r\nContainer(auth_svc, \"Us\u0142uga Autoryzacji\", \"Spring Boot\", \"Obs\u0142uguje logowanie, sesje i koordynacj\u0119 MFA\")\r\nContainer(transaction_svc, \"Us\u0142uga Transakcji\", \"Spring Boot\", \"Koordynuje przelewy, p\u0142atno\u015bci rachunk\u00f3w i rozliczenia\")\r\nContainer(customer_svc, \"Us\u0142uga Klienta\", \"Spring Boot\", \"Zarz\u0105dza profilami klient\u00f3w i preferencjami\")\r\n\r\nRel(web_app, routing, \"Wysy\u0142a \u017c\u0105dania API do\", \"JSON\/HTTPS\")\r\nRel(mobile_app, routing, \"Wysy\u0142a \u017c\u0105dania API do\", \"JSON\/HTTPS\")\r\nRel(admin_console, routing, \"Wysy\u0142a \u017c\u0105dania API administracyjnej do\", \"JSON\/HTTPS\")\r\nRel(routing, auth_filter, \"Filtruje ka\u017cde \u017c\u0105danie przez\", \"\")\r\nRel(auth_filter, cache, \"Odczytuje i zapisuje stan sesji w\", \"\")\r\nRel(auth_filter, tracing, \"Generuje rozpi\u0119to\u015bci (spans) do\", \"\")\r\nRel(routing, tracing, \"Instrumentuje wywo\u0142ania \u017c\u0105da\u0144 za pomoc\u0105\", \"\")\r\nRel(error_handler, routing, \"Zwraca znormalizowane odpowiedzi poprzez\", \"\")\r\nRel(routing, auth_svc, \"Przekierowuje \u017c\u0105dania autoryzacji do\", \"gRPC\")\r\nRel(routing, transaction_svc, \"Przekierowuje \u017c\u0105dania transakcji do\", \"gRPC\")\r\nRel(routing, customer_svc, \"Przekierowuje \u017c\u0105dania profilu do\", \"gRPC\")\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:dLR1JYD74BrRyZzKo25OWhMYSCffZNTXMLXiOIEKlLZjwSPkJqzNgxk7qKoK2mhADw3zZ5ovnVwlLCyOpzX04eLJKptzwbNLUmNldMVMfubgjtu05qjjc6K9AAc5puq0j7wExTPtKaSgvGBctXltSxThMVPk9lqydQPEs0Yr5zg_Yp3f6iLq03nqdYivxVQF3eSXTFtbefimvuMbqAIFYK4TtfWoUPsQYrkMAdz2a2DP2FZnw8tRFYgqyFrFvK_pcplpGR8PdSQXWlvHWboeJSBrNRlLRbtqVXbSZoStP-DFaukFfnylF-ntGjnBhmIiFuJu-ULVVsR05OCB5WidgHd7JCTm2CVqLSoWDpmh8vZXwbia0r2VQ39gfTtFn7J2Z3c0lPvHCcRHWi6Dc6B6zYXs9LZaOJJiXLy-2wxHUOjQHdGFRFF0s4BCrFA1Cnk7ctJrb6TCLnS5n4fMBFSwpTG9JgKIBx9_2M5TffU34NIXfxb5oKFWalayqytKIVNrVqp9U2BrX5JXK0d2EozF30P6M1Rb2rrN7Gut8jFBHsyBdOCa9TbRiN1GWaXgHFaYVqwThrCJbAEngBtELgSdnvXgQb2-puoSp3A2Vtq-UntujTq2s0XZtsBgfPu5PdGIDhm8z4R6KXZw2bCEfyoBZEKXFYGUiHGMitGX0giycYClbW-HWDLJ69EM33X2jhfd8MKc5f2wrNqwanJEDDKcM88K3aKqgR3KpoUtKX4BIdH21miKGviND0u9aXoQI9z2L2mVdKUlvBggckz8HAcLFgVHNf5UmwGYSRGe6ywKv86qnrXGHp_VZ0-0O5o8bSZv2sJAwGpPdXUaWd3G12ZPBlCmhkSc5iQYAoWEgszAy8A-5o4zoK2FXHA9yBRiv3bQeKBkkcs9N3xo8b_tYoMoj5uaL71X9Zb6XQvuxUEKLj0T8u4IxyukeOX5yw318GkGop_08BVBHthEm0cta9KKkNJXS9pUecrqXehsJ5SV7W2RbkhBdP725Jc1nQGxIo9lJcUNWR0MxMJED5VbE0VJgYQOhkwfoE2UUch7YAKdBj4cDAKYS45kC9FKG5a_8MO9C-4sonVB1nzBe89Yv7bWx5ENmgVnU1Yu_BQzYafjkRk8abolYVGQv5zIMVCjjO4pMZmqneEo9O9On8YMvvhUBX_XoqblUnEG7BGZcqlKEpd7vKtyUihp2dJjAv9AbX-08HlvzT19PVDKnrKZB1PAHiMp7EliKKeAJcWfRAS-BxSMUoNlLsR9lq7Y95toNz3TPiTH9cF5hR1af0NTL9ldIgXwkzShv2PtEV5jA3hi7uxbXXyDBhjXEgC04G2QE_h_OkmitN-3sLwlj9dUmjq0lRAKme1YjdhYjNMhYHK1QyEi-V3PZmCU5RbFImqLjAlBtLER3R8t4UeLSofeok4TAS2Gk_rw8pX3skgiAtfHH_t-BApWDA7nLaQYJNTVDgWgPlKx12LWWj7oeGcru-YwrLypmcP0gwboRp3BbdyDlkZETdyhfMx_QQa7r_mRK5KtknhsNwjmntLl0VgD2_y9RyT7Ru5LdabtaDgjzq9p-Y_lRm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:dLRVRo8t47v7ud-OKgcNIE5GrJprwSWckN0Y2GBIg4_8h0TmyTgkxOLoLV_tc_4kiE6IKrHUm6FFDzzyyoFv5ABmiInqk_K1mbeP9xmeG2k3SUSGh8yhssxzf4okIucmYj65ttizBxOVbogkodaPqEVMH3JnOswBdjF2C60tHAdLl9TTTaTiUheVzWeH8deopJ9RE6lOnwNWnz0I5wBKyPOW9-ehmg-NRzncLbiFF_-MFiqt6tUjn99-JJc3xBAm4lKXO7tNRhLRm_wVZq_JsVDWUZSRtdo-URW-EsTxL56Juzu3PEK22uet56iCYfIu4cODtVIbp1Bwem5y5X6tOiSG6H4K9A8_s-9y9foxWCuppg7ld5QvYCgQ3fd6AF88ar6V3nF2qTXrOeamztPBmW9v0YaiORw3l0pH5kX3vxmPeB1pfR6ESPyE78OHrUC4Uj0tqbibsV10aJS8bSjxm8Kib9bHVOFLI02F3drY7qYVP3oamJy6r0VU20t93vu61tpgiyMYS_v2czcLBOqKVdScd9ejjmJmYfoTS_YttO9ZFSwyBICzekVyR4mdz4b0vzatqxQK1s-cnoy2K0_RWXzu_Bl440D42t65a5llaUeWxTQ4w95AJTflL8vCk1bPb74rMoXD0JawdU0N65Eaxb0LAi9jkcfmcM1UUXLtL8OnzOrMQ7Ay_8jV_26qaeA9VNcU4fKrcd31DQ570KXbf34aK3OQ2VaAytK0qhzG8N05Jib5B_9Abcj5QQWvPIrXMbaxLV7C53KM67qI9kF4TU9mq4JateQm5o2afhTpFWfg6ahbD6mkY1fdZ8aMP7okkaAgaCAm9TGffcH2_PQwWjAaCWI7nBLqm0hNkPu6Gk-jdwt8NoVvR_WCTzMveVcLjQaP7wmlIEEl53gvKew1e2Xsub08HnV_vEYgVYOMTzFfA74g0pM5n4JXlvVpd5eWRFAw_aIidcUgTTKptpEfE0RGTgdCnJxxggxtjttQiYnGh2RhvG2IqGIQBhgeeqwFbX-4pAprKfbKsuIneDc-02gX1YTs1V6k6ujQtvgSIljAzFrMg4DdzV47SU-5eVqL3li4dBSqCBNcpYFnu1a8rIuOepvkoEDSJz38a9P0OrOP_ilayQ77PPgmFtitrz__0ZXPSQSOrIPx5zB1zUMQg9O2zTe6_MwFGek7dYzNZ7HWqdJRZnNjLbc9jwL5Wk5aTfHv4-6u3svuZT2C2RCd_ntbu-C1xy0oDSY1R2wq3h2bF_XDvvE1F2etnbXwYcNs4oWRixTHubK6ZS6g5tRQ1IUgByUZx3No9qDI8pGktWLqqkyrIjt2Ro6qMv-eK-ZVc6y0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:dLRVRo8t47v7ud-OKgcNIE5GrJprwSWckN0Y2GBIg4_8h0TmyTgkxOLoLV_tc_4kiE6IKrHUm6FFDzzyyoFv5ABmiInqk_K1mbeP9xmeG2k3SUSGh8yhssxzf4okIucmYj65ttizBxOVbogkodaPqEVMH3JnOswBdjF2C60tHAdLl9TTTaTiUheVzWeH8deopJ9RE6lOnwNWnz0I5wBKyPOW9-ehmg-NRzncLbiFF_-MFiqt6tUjn99-JJc3xBAm4lKXO7tNRhLRm_wVZq_JsVDWUZSRtdo-URW-EsTxL56Juzu3PEK22uet56iCYfIu4cODtVIbp1Bwem5y5X6tOiSG6H4K9A8_s-9y9foxWCuppg7ld5QvYCgQ3fd6AF88ar6V3nF2qTXrOeamztPBmW9v0YaiORw3l0pH5kX3vxmPeB1pfR6ESPyE78OHrUC4Uj0tqbibsV10aJS8bSjxm8Kib9bHVOFLI02F3drY7qYVP3oamJy6r0VU20t93vu61tpgiyMYS_v2czcLBOqKVdScd9ejjmJmYfoTS_YttO9ZFSwyBICzekVyR4mdz4b0vzatqxQK1s-cnoy2K0_RWXzu_Bl440D42t65a5llaUeWxTQ4w95AJTflL8vCk1bPb74rMoXD0JawdU0N65Eaxb0LAi9jkcfmcM1UUXLtL8OnzOrMQ7Ay_8jV_26qaeA9VNcU4fKrcd31DQ570KXbf34aK3OQ2VaAytK0qhzG8N05Jib5B_9Abcj5QQWvPIrXMbaxLV7C53KM67qI9kF4TU9mq4JateQm5o2afhTpFWfg6ahbD6mkY1fdZ8aMP7okkaAgaCAm9TGffcH2_PQwWjAaCWI7nBLqm0hNkPu6Gk-jdwt8NoVvR_WCTzMveVcLjQaP7wmlIEEl53gvKew1e2Xsub08HnV_vEYgVYOMTzFfA74g0pM5n4JXlvVpd5eWRFAw_aIidcUgTTKptpEfE0RGTgdCnJxxggxtjttQiYnGh2RhvG2IqGIQBhgeeqwFbX-4pAprKfbKsuIneDc-02gX1YTs1V6k6ujQtvgSIljAzFrMg4DdzV47SU-5eVqL3li4dBSqCBNcpYFnu1a8rIuOepvkoEDSJz38a9P0OrOP_ilayQ77PPgmFtitrz__0ZXPSQSOrIPx5zB1zUMQg9O2zTe6_MwFGek7dYzNZ7HWqdJRZnNjLbc9jwL5Wk5aTfHv4-6u3svuZT2C2RCd_ntbu-C1xy0oDSY1R2wq3h2bF_XDvvE1F2etnbXwYcNs4oWRixTHubK6ZS6g5tRQ1IUgByUZx3No9qDI8pGktWLqqkyrIjt2Ro6qMv-eK-ZVc6y0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<blockquote>\n<p><strong>\ud83d\udca1 Wskaz\u00f3wka dla pocz\u0105tkuj\u0105cych:<\/strong> Na poziomie 3 okre\u015bl dok\u0142adnie, kt\u00f3ry kontener ma zosta\u0107 zdekomponowany. Wprowad\u017a do AI polecenie: &#8222;Poka\u017c tylko komponenty wewn\u0105trz konteneru Bramy API Bankowo\u015bci&#8221;, aby unikn\u0105\u0107 nadmiernej dekompozycji. Zauwa\u017c, \u017ce wewn\u0119trzne relacje mi\u0119dzy komponentami (takie jak<code data-backticks=\"1\">routing<\/code>\u00a0\u2192\u00a0<code data-backticks=\"1\">auth_filter<\/code>) pomijaj etykiet\u0119 technologii, gdy jest to po\u0142\u0105czenie wewn\u0105trz procesu, co utrzymuje diagram w czystej formie.<\/p>\n<\/blockquote>\n<hr\/>\n<h2>Zrozumienie interfejsu czatu botowego<\/h2>\n<p>Wiedza o tym<em>co<\/em>co modelowa\u0107 to tylko po\u0142owa sukcesu; wiedza o tym<em>jak<\/em>jak korzysta\u0107 z narz\u0119dzia jest r\u00f3wnie wa\u017cna. Interfejs czatu botowego AI Visual Paradigm zosta\u0142 zaprojektowany tak, aby modelowanie C4 by\u0142o prowadzone w formie rozmowy, jednocze\u015bnie ujawniaj\u0105c le\u017c\u0105cy u podstaw kod PlantUML.<\/p>\n<p><img alt=\"Diagram komponent\u00f3w C4 dla Bramki API Bankowej Lakeside Bank pokazuj\u0105cy aplikacj\u0119 webow\u0105, aplikacj\u0119 mobiln\u0105 i us\u0142ugi backendowe.\" decoding=\"async\" src=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f5e58449c.png\"\/><\/p>\n<p><img alt=\"Interfejs Visual Paradigm AI Chatbot wy\u015bwietlaj\u0105cy wygenerowany diagram komponent\u00f3w C4 dla bramki API bankowej.\" decoding=\"async\" src=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f6460aa97.png\"\/><\/p>\n<h3>Kluczowe elementy interfejsu dla pocz\u0105tkuj\u0105cych<\/h3>\n<ul>\n<li>\n<p><strong>P\u0142\u00f3tno konwersacyjne:<\/strong>Panel czatu pozwala na iteracyjne udoskonalanie diagram\u00f3w. Je\u015bli AI wygeneruje diagram kontenera bez kolejki wiadomo\u015bci, po prostu wpisz: &#8222;Dodaj RabbitMQ mi\u0119dzy Serwisem Transakcji a Bram\u0105 Powiadomie\u0144&#8221; i natychmiast otrzymasz zaktualizowany kod PlantUML.<\/p>\n<\/li>\n<li>\n<p><strong>Synchronizacja kodu i wizualizacji:<\/strong>Wygenerowany kod PlantUML pojawia si\u0119 obok renderowanego diagramu. Mo\u017cesz edytowa\u0107 kod bezpo\u015brednio lub kontynuowa\u0107 rozmow\u0119 \u2014 obie \u015bcie\u017cki pozostaj\u0105 zsynchronizowane.<\/p>\n<\/li>\n<li>\n<p><strong>Podgl\u0105d i eksport diagramu:<\/strong>Renderowane diagramy mo\u017cna eksportowa\u0107 jako PNG, SVG lub PDF do dokumentacji, podczas gdy \u017ar\u00f3d\u0142owy kod PlantUML pozostaje w Twoim repozytorium.<\/p>\n<\/li>\n<li>\n<p><strong>Historia polece\u0144 i szablony:<\/strong>Poprzednie polecenia s\u0105 zapisywane, co pozwala na ponowne wykorzystanie skutecznych wzorc\u00f3w. Wbudowane szablony polece\u0144 C4 pomagaj\u0105 pocz\u0105tkuj\u0105cym skutecznie strukturyzowa\u0107 \u017c\u0105dania.<\/p>\n<\/li>\n<li>\n<p><strong>Informacje zwrotne z walidacji:<\/strong>Czat bot mo\u017ce przegl\u0105da\u0107 wygenerowany kod pod k\u0105tem najlepszych praktyk C4 i sugerowa\u0107 ulepszenia, dzia\u0142aj\u0105c jako zautomatyzowany mentor architektury.<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h2>Podsumowanie<\/h2>\n<p>Model<a href=\"https:\/\/online.visual-paradigm.com\/diagrams\/features\/c4-model-tool\/\"> C4<\/a> zapewnia struktur\u0119; <a href=\"https:\/\/www.visual-paradigm.com\/features\/ai-chatbot\/\">Czat botowy AI Visual Paradigm<\/a> zapewnia przyspieszenie. Dla pocz\u0105tkuj\u0105cych ta kombinacja eliminuje parali\u017c, kt\u00f3ry cz\u0119sto towarzyszy modelowaniu architektury na pustym p\u0142\u00f3tnie. Rozpoczynaj\u0105c od opis\u00f3w w j\u0119zyku naturalnym i otrzymuj\u0105c w zamian gotowy do produkcji kod PlantUML, nowi architekci mog\u0105 tworzy\u0107 profesjonalne diagramy kontekstu systemu, kontener\u00f3w i komponent\u00f3w w u\u0142amku tradycyjnego czasu.<\/p>\n<p>Przyk\u0142ad Lakeside Bank pokazuje, \u017ce <a href=\"https:\/\/www.visual-paradigm.com\/solution\/c4-diagram-tool\/\">diagramy C4 wygenerowane przez AI<\/a> nie s\u0105 uproszczonymi zabawkami \u2014 uciele\u015bniaj\u0105 rzeczywiste decyzje architektoniczne: granice przedsi\u0119biorstwa, asynchroniczne od\u0142\u0105czenie, wzorce bramki oraz adnotacje specyficzne dla technologii. Do\u0142\u0105czenie pe\u0142nego kodu \u017ar\u00f3d\u0142owego PlantUML na ka\u017cdym poziomie oznacza, \u017ce te diagramy s\u0105 \u017cywymi artefaktami, a nie statycznymi dostawami. Mo\u017cna je kontrolowa\u0107 wersjami, przegl\u0105da\u0107 w pull requestach i regenerowa\u0107 w miar\u0119 ewolucji systemu.<\/p>\n<p class=\"\"><strong>Tw\u00f3j nast\u0119pny krok:<\/strong>Otw\u00f3rz Visual Paradigm, uruchom <a href=\"https:\/\/www.archimetric.com\/%F0%9F%9A%80-unlock-your-teams-potential-the-complete-guide-to-visual-paradigm-ai-chatbot\/\">AI Chatbot<\/a>i opisz sw\u00f3j w\u0142asny system. Zacznij od Poziomu 1, pozw\u00f3l AI wygenerowa\u0107 kod PlantUML, renderowa\u0107 diagram i przybli\u017ca\u0107 poziom po poziomie. Mapa wy\u0142oni si\u0119 z rozmowy \u2014 a kod b\u0119dzie j\u0105 podtrzymywa\u0142.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wst\u0119p Architektura oprogramowania jest cz\u0119sto opisywana jako \u201eszkic&#8221; systemu, ale dla wielu pocz\u0105tkuj\u0105cych przek\u0142adanie abstrakcyjnych wymaga\u0144 na konkretne, komunikowalne diagramy pozostaje znacz\u0105c\u0105 przeszkod\u0105.Model C4 (Kontekst, Kontenery, Komponenty i Kod)sta\u0142 si\u0119&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","inline_featured_image":false,"source_url":"","fifu_image_url":"","fifu_image_alt":"","_fifu_image_alt":"","fifu_alt":"","_fifu_alt":"","fifu_image_title":"","_fifu_image_title":"","fifu_input_alt":"","vp_image_hash":"","footnotes":""},"categories":[3,41],"tags":[],"asset-category":[],"class_list":["post-358","post","type-post","status-publish","format-standard","hentry","category-ai","category-c4-model"],"source_url":"","fifu_image_url":"","fifu_image_alt":"","vp_image_hash":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych - We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub<\/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:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych - We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub\" \/>\n<meta property=\"og:description\" content=\"Wst\u0119p Architektura oprogramowania jest cz\u0119sto opisywana jako \u201eszkic&#8221; systemu, ale dla wielu pocz\u0105tkuj\u0105cych przek\u0142adanie abstrakcyjnych wymaga\u0144 na konkretne, komunikowalne diagramy pozostaje znacz\u0105c\u0105 przeszkod\u0105.Model C4 (Kontekst, Kontenery, Komponenty i Kod)sta\u0142 si\u0119&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-21T07:04:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-04T10:48:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.we-notes.com\/pl\/#\/schema\/person\/1edf4cfef8a4119891eded121a4ddf16\"},\"headline\":\"Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych\",\"datePublished\":\"2026-08-21T07:04:19+00:00\",\"dateModified\":\"2026-09-04T10:48:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/\"},\"wordCount\":1744,\"publisher\":{\"@id\":\"https:\/\/www.we-notes.com\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png\",\"articleSection\":[\"AI\",\"C4 Model\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/\",\"url\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/\",\"name\":\"Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych - We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub\",\"isPartOf\":{\"@id\":\"https:\/\/www.we-notes.com\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png\",\"datePublished\":\"2026-08-21T07:04:19+00:00\",\"dateModified\":\"2026-09-04T10:48:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#primaryimage\",\"url\":\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png\",\"contentUrl\":\"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.we-notes.com\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.we-notes.com\/pl\/#website\",\"url\":\"https:\/\/www.we-notes.com\/pl\/\",\"name\":\"We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.we-notes.com\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.we-notes.com\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.we-notes.com\/pl\/#organization\",\"name\":\"We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub\",\"url\":\"https:\/\/www.we-notes.com\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.we-notes.com\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.we-notes.com\/pl\/wp-content\/uploads\/sites\/22\/2026\/03\/we-notes-logo.png\",\"contentUrl\":\"https:\/\/www.we-notes.com\/pl\/wp-content\/uploads\/sites\/22\/2026\/03\/we-notes-logo.png\",\"width\":1042,\"height\":322,\"caption\":\"We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub\"},\"image\":{\"@id\":\"https:\/\/www.we-notes.com\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.we-notes.com\/pl\/#\/schema\/person\/1edf4cfef8a4119891eded121a4ddf16\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.we-notes.com\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"caption\":\"curtis\"},\"url\":\"https:\/\/www.we-notes.com\/pl\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych - We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub","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.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/","og_locale":"pl_PL","og_type":"article","og_title":"Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych - We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub","og_description":"Wst\u0119p Architektura oprogramowania jest cz\u0119sto opisywana jako \u201eszkic&#8221; systemu, ale dla wielu pocz\u0105tkuj\u0105cych przek\u0142adanie abstrakcyjnych wymaga\u0144 na konkretne, komunikowalne diagramy pozostaje znacz\u0105c\u0105 przeszkod\u0105.Model C4 (Kontekst, Kontenery, Komponenty i Kod)sta\u0142 si\u0119&hellip;","og_url":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/","og_site_name":"We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub","article_published_time":"2026-08-21T07:04:19+00:00","article_modified_time":"2026-09-04T10:48:35+00:00","og_image":[{"url":"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png","type":"","width":"","height":""}],"author":"curtis","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":false,"Szacowany czas czytania":"8 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#article","isPartOf":{"@id":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/"},"author":{"name":"curtis","@id":"https:\/\/www.we-notes.com\/pl\/#\/schema\/person\/1edf4cfef8a4119891eded121a4ddf16"},"headline":"Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych","datePublished":"2026-08-21T07:04:19+00:00","dateModified":"2026-09-04T10:48:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/"},"wordCount":1744,"publisher":{"@id":"https:\/\/www.we-notes.com\/pl\/#organization"},"image":{"@id":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png","articleSection":["AI","C4 Model"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/","url":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/","name":"Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych - We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub","isPartOf":{"@id":"https:\/\/www.we-notes.com\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png","datePublished":"2026-08-21T07:04:19+00:00","dateModified":"2026-09-04T10:48:35+00:00","breadcrumb":{"@id":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#primaryimage","url":"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png","contentUrl":"https:\/\/www.we-notes.com\/wp-content\/uploads\/2026\/08\/img_6a87f9363ddaa.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.we-notes.com\/pl\/mastering-c4-architecture-with-visual-paradigm-ai-a-beginners-comprehensive-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.we-notes.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Opanowanie architektury C4 z wykorzystaniem Visual Paradigm AI: Kompleksowy przewodnik dla pocz\u0105tkuj\u0105cych"}]},{"@type":"WebSite","@id":"https:\/\/www.we-notes.com\/pl\/#website","url":"https:\/\/www.we-notes.com\/pl\/","name":"We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub","description":"","publisher":{"@id":"https:\/\/www.we-notes.com\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.we-notes.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/www.we-notes.com\/pl\/#organization","name":"We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub","url":"https:\/\/www.we-notes.com\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.we-notes.com\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/www.we-notes.com\/pl\/wp-content\/uploads\/sites\/22\/2026\/03\/we-notes-logo.png","contentUrl":"https:\/\/www.we-notes.com\/pl\/wp-content\/uploads\/sites\/22\/2026\/03\/we-notes-logo.png","width":1042,"height":322,"caption":"We Notes Polski\u2013 Collaborative AI Insights &amp; Intelligence Hub"},"image":{"@id":"https:\/\/www.we-notes.com\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.we-notes.com\/pl\/#\/schema\/person\/1edf4cfef8a4119891eded121a4ddf16","name":"curtis","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.we-notes.com\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","caption":"curtis"},"url":"https:\/\/www.we-notes.com\/pl\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.we-notes.com\/pl\/wp-json\/wp\/v2\/posts\/358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.we-notes.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.we-notes.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.we-notes.com\/pl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.we-notes.com\/pl\/wp-json\/wp\/v2\/comments?post=358"}],"version-history":[{"count":0,"href":"https:\/\/www.we-notes.com\/pl\/wp-json\/wp\/v2\/posts\/358\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.we-notes.com\/pl\/wp-json\/wp\/v2\/media?parent=358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.we-notes.com\/pl\/wp-json\/wp\/v2\/categories?post=358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.we-notes.com\/pl\/wp-json\/wp\/v2\/tags?post=358"},{"taxonomy":"asset-category","embeddable":true,"href":"https:\/\/www.we-notes.com\/pl\/wp-json\/wp\/v2\/asset-category?post=358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}