{"id":95786,"date":"2020-10-03T13:42:12","date_gmt":"2020-10-03T11:42:12","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/istoriya-arhitektury-dodo-is-put-bekofisa"},"modified":"2020-10-03T13:42:12","modified_gmt":"2020-10-03T11:42:12","slug":"istoriya-arhitektury-dodo-is-put-bekofisa","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/istoriya-arhitektury-dodo-is-put-bekofisa","title":{"rendered":"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Habr po ndryshon bot\u00ebn. M\u00eb shum\u00eb se nj\u00eb vit ne kemi mbajtur blogun ton\u00eb. Gati gjasht\u00eb muaj m\u00eb par\u00eb mor\u00ebm nj\u00eb feedback t\u00eb arsyesh\u00ebm nga habrovian\u00ebt: \u00abDodo, ju gjithmon\u00eb flisni p\u00ebr sistemin tuaj. \u00c7far\u00eb \u00ebsht\u00eb ky sistem? Dhe p\u00ebrse \u00ebsht\u00eb i nevojsh\u00ebm p\u00ebr nj\u00eb rrjet pica?\u00bb <\/p>\n<p>Ne kemi kaluar koh\u00eb duke menduar dhe kuptuar se keni t\u00eb drejt\u00eb. Ne provojm\u00eb t\u00eb shpjegojm\u00eb gjith\u00e7ka n\u00eb m\u00ebnyr\u00eb t\u00eb thjesht\u00eb, por del n\u00eb m\u00ebnyra t\u00eb \u00e7rregullta dhe nuk ka nj\u00eb p\u00ebrshkrim t\u00eb plot\u00eb t\u00eb sistemit. K\u00ebshtu filloi nj\u00eb rrug\u00ebtim i gjat\u00eb mbledhjeje informacioni, k\u00ebrkimi autor\u00ebsh dhe shkruajti nj\u00eb seri artikelesh mbi Dodo IS. Le t\u00eb fillojm\u00eb!<\/p>\n<blockquote><p><i>Fal\u00ebnderime: faleminderit q\u00eb ndani feedback-un tuaj me ne. Fal\u00eb k\u00ebsaj ne p\u00ebrfunduam p\u00ebrshkrimin e sistemit, p\u00ebrgatit\u00ebm radarin teknik dhe s\u00eb shpejti do t\u00eb publikojm\u00eb nj\u00eb p\u00ebrshkrim t\u00eb plot\u00eb t\u00eb proceseve tona. Pa ju, akoma do t\u00eb ishim k\u00ebtu p\u00ebr pes\u00eb vite t\u00eb tjera. <\/i><\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/dcfd06b2ec1544e1e19994d60e9594ac.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Seria e artikujve \u00ab\u00c7far\u00eb \u00ebsht\u00eb Dodo IS?\u00bb do t\u00eb flas\u00eb p\u00ebr:<\/b><\/p>\n<ol>\n<li>Monoliti fillestar n\u00eb Dodo IS (2011-2015). (N\u00eb proces&#8230;)<\/li>\n<li>Rruga e back-office: baza t\u00eb ndara dhe nj\u00eb bus. (Ju jeni k\u00ebtu)<\/li>\n<li>Dita e klientit: fasada mbi baz\u00ebn (2016-2017). (N\u00eb proces&#8230;)<\/li>\n<li>Historia e mikrosh\u00ebrbimeve t\u00eb v\u00ebrteta. (2018-2019). (N\u00eb proces&#8230;)<\/li>\n<li>P\u00ebrfundimi i prerjes s\u00eb monolitit dhe stabilizimi i arkitektur\u00ebs. (N\u00eb proces&#8230;)<\/li>\n<\/ol>\n<p>\n<b>N\u00ebse d\u00ebshironi t\u00eb dini di\u00e7ka tjet\u00ebr, shkruani n\u00eb komente. <\/b><\/p><\/blockquote>\n<p><\/p>\n<p>                        <b class=\"spoiler_title\">Mendim mbi p\u00ebrshkrimin kronologjik nga autori<\/b><br \/>\n                        Rregullisht mbaj nj\u00eb takim p\u00ebr punonj\u00ebsit e rinj mbi tem\u00ebn \u00abArkitektura e sistemit\u00bb. Ne e quajm\u00eb at\u00eb \u00abIntro to Dodo IS Architecture\u00bb dhe \u00ebsht\u00eb pjes\u00eb e procesit t\u00eb onboardimit p\u00ebr zhvilluesit e rinj. Duke folur n\u00eb nj\u00eb form\u00eb t\u00eb ndryshme p\u00ebr arkitektur\u00ebn ton\u00eb, p\u00ebr ve\u00e7orit\u00eb e saj, m\u00eb erdhi nj\u00eb qasje historike n\u00eb p\u00ebrshkrimin. <\/p>\n<p>Tradicionalisht e shohim sistemin si nj\u00eb grup p\u00ebrb\u00ebr\u00ebsish (teknik\u00eb ose m\u00eb t\u00eb nivelit t\u00eb lart\u00eb), modul biznesi q\u00eb nd\u00ebrveprojn\u00eb me nj\u00ebri-tjetrin p\u00ebr t\u00eb arritur nj\u00eb q\u00ebllim. Dhe n\u00ebse p\u00ebr projektimin nj\u00eb k\u00ebndv\u00ebshtrim i till\u00eb \u00ebsht\u00eb i arsyesh\u00ebm, p\u00ebr p\u00ebrshkrimin dhe kuptimin nuk \u00ebsht\u00eb plot\u00ebsisht i p\u00ebrshtatsh\u00ebm. Ka disa arsye p\u00ebr k\u00ebt\u00eb:<\/p>\n<ul>\n<li>Realisht, situata ndryshon nga ajo q\u00eb \u00ebsht\u00eb n\u00eb let\u00ebr. Jo gjith\u00e7ka q\u00eb ishte e menduar realizohet. Ne jemi t\u00eb interesuar t\u00eb dim\u00eb se si n\u00eb t\u00eb v\u00ebrtet\u00eb ka ndodhur dhe funksionon gjith\u00e7ka. <\/li>\n<li>Shpjegimi i informacionit n\u00eb nj\u00eb rend kronologjik. N\u00eb thelb, mund t\u00eb kalojm\u00eb n\u00ebp\u00ebrmjet nj\u00eb rrug\u00eb kronologjike nga fillimi deri n\u00eb gjendjen aktuale. <\/li>\n<li>Nga e thjeshta n\u00eb t\u00eb komplikuar. Nuk \u00ebsht\u00eb universale, por n\u00eb rastin ton\u00eb ndodhi k\u00ebshtu. Nga qasjet m\u00eb t\u00eb thjeshta, arkitektura kaloi n\u00eb m\u00eb t\u00eb komplikuara. Shpesh p\u00ebrmes komplikimit u zgjidh\u00ebn problemet e shpejt\u00ebsis\u00eb s\u00eb realizimit dhe stabilitetit, si dhe dhjet\u00ebra karakteristika t\u00eb tjera nga lista e k\u00ebrkesave jo funksionale (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=6m4XPje76WU\">k\u00ebtu<\/a><\/noindex> mir\u00eb \u00ebsht\u00eb folur p\u00ebr p\u00ebrballimin e kompleksitetit me k\u00ebrkesat e tjera).<\/li>\n<\/ul>\n<p>N\u00eb vitin 2011, arkitektura Dodo IS dukej k\u00ebshtu:<\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/3f447154d2d7e7323806f11aeec88e98.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>N\u00eb vitin 2020, ajo u komplikuar pak dhe dukej k\u00ebshtu:<\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/407b5fead36d6d6d39ab14ea5edcdd5b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi ndodhi kjo evolucion? Pse jan\u00eb t\u00eb nevojshme pjes\u00ebt e ndryshme t\u00eb sistemit? Cil\u00ebt jan\u00eb zgjidhjet arkitektonike dhe p\u00ebrse u b\u00ebn\u00eb? Do t'i shqyrtojm\u00eb n\u00eb k\u00ebt\u00eb seri artikujsh. <\/p>\n<h2>Problemet e para t\u00eb vitit 2016: p\u00ebrse sh\u00ebrbimet duhet t\u00eb dalin nga monoliti<\/h2>\n<p>\nArtikujt e par\u00eb t\u00eb ciklit do t\u00eb flasin p\u00ebr sh\u00ebrbimet q\u00eb u ndan\u00eb fillimisht nga monoliti. P\u00ebr t'ju futur n\u00eb kontekst, do t\u00eb tregoj se cilat jan\u00eb problemet q\u00eb kishim n\u00eb sistem n\u00eb fillim t\u00eb vitit 2016, se \u00e7far\u00eb na duhej t\u00eb merreshim me ndarjen e sh\u00ebrbimeve.<\/p>\n<p><b>Nj\u00eb baz\u00eb e vetme MySql, n\u00eb t\u00eb cil\u00ebn t\u00eb gjitha aplikacionet q\u00eb ekzistonin n\u00eb at\u00eb koh\u00eb n\u00eb Dodo IS shkruanin regjistrimet e tyre.<\/b> Pasojat ishin k\u00ebto:<\/p>\n<ul>\n<li>Ngarkes\u00eb e madhe (k\u00ebtu 85% e k\u00ebrkesave ishin p\u00ebr lexim). <\/li>\n<li>Baza u rrit. P\u00ebr shkak t\u00eb k\u00ebsaj, kostoja e saj dhe mir\u00ebmbajtja po b\u00ebheshin nj\u00eb problem.<\/li>\n<li>Nj\u00eb pik\u00eb e vetme d\u00ebshtimi. N\u00ebse nj\u00eb aplikacion, q\u00eb shkruante n\u00eb baz\u00eb, papritur fillonte ta b\u00ebnte k\u00ebt\u00eb m\u00eb shpesh, aplikacionet e tjera e ndienin k\u00ebt\u00eb.<\/li>\n<li>Efi\u00e7ienc\u00eb e dob\u00ebt n\u00eb ruajtje dhe k\u00ebrkesa. Shpesh t\u00eb dh\u00ebnat ruhet n\u00eb nj\u00eb struktur\u00eb q\u00eb ishte e p\u00ebrshtatshme p\u00ebr disa skenar\u00eb, por e pap\u00ebrshtatshme p\u00ebr t\u00eb tjer\u00ebt. Indekset shpejtonin disa operacione, por mund t\u00eb ngadal\u00ebsonin t\u00eb tjera.<\/li>\n<li>Disa nga problemet u leht\u00ebsuan nga kesh\u00ebt dhe read-replikat q\u00eb u b\u00ebn\u00eb me ngut p\u00ebr bazat (kjo do t\u00eb jet\u00eb nj\u00eb artikull i ve\u00e7ant\u00eb), por ato vet\u00ebm fituan koh\u00eb dhe nuk e zgjidhen problemin n\u00eb thelb.<\/li>\n<\/ul>\n<p>\n<b>Problemi ishte prania e vet\u00eb monoliti<\/b>. Pasojat ishin k\u00ebto:<\/p>\n<ul>\n<li>\u00c7lirimet e p\u00ebrbashk\u00ebta dhe t\u00eb rralla.<\/li>\n<li>V\u00ebshtir\u00ebsi n\u00eb zhvillimin e p\u00ebrbashk\u00ebt p\u00ebr nj\u00eb num\u00ebr t\u00eb madh njer\u00ebzish.<\/li>\n<li>Pamund\u00ebsia p\u00ebr t\u00eb sjell\u00eb teknologji t\u00eb reja, framework-e dhe biblioteka. <\/li>\n<\/ul>\n<p>\nProblemet me baz\u00ebn dhe monolitin jan\u00eb p\u00ebrshkruar shum\u00eb her\u00eb, p\u00ebr shembull, n\u00eb kontekstin e r\u00ebnieve n\u00eb fillim t\u00eb vitit 2018 (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzadev\/blog\/455264\/\">B\u00ebhu si Munk, ose disa fjal\u00eb mbi borxhin teknik<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzadev\/blog\/461081\/\">Dita kur Dodo IS ndaloi. Scenari asinkron<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzadev\/blog\/498280\/\">Historia e zogut Dodo nga fisi i Feniksit. R\u00ebnia e madhe e Dodo IS<\/a><\/noindex>), k\u00ebshtu q\u00eb nuk do t\u00eb ndalem shum\u00eb. Thjesht do t\u00eb them se d\u00ebshironim t\u00eb ofronim m\u00eb shum\u00eb fleksibilitet n\u00eb zhvillimin e sh\u00ebrbimeve. Kjo n\u00eb radh\u00eb t\u00eb par\u00eb i p\u00ebrkiste atyre q\u00eb ishin m\u00eb t\u00eb ngarkuar dhe rr\u00ebnj\u00ebsor\u00eb n\u00eb t\u00eb gjith\u00eb sistemin \u2014 Auth dhe Tracker.<\/p>\n<h2>Rruga e backoffice: baza t\u00eb ndara dhe shina<\/h2>\n<p><\/p>\n<blockquote><p><b>Navigimi n\u00eb kapitull<\/b><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"#Q0\">Skema e monolitit t\u00eb vitit 2016<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"#Q1\">Duke filluar t\u00eb shkarkojm\u00eb monolitin: ndarja e Auth dhe Tracker<br \/>\n<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"#Q2\">\u00c7far\u00eb b\u00ebn Auth<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"#Q3\">Nga vijn\u00eb ngarkesat?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"#Q4\">Duke shkarkuar Auth<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"#Q5\">\u00c7far\u00eb b\u00ebn Tracker<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"#Q6\">Nga vijn\u00eb ngarkesat?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"#Q4\">Duke shkarkuar Tracker<\/a><\/noindex><\/li>\n<\/ol>\n<\/blockquote>\n<p>\n<noindex><a rel=\"nofollow\" name=\"Q0\"><\/a><\/noindex><\/p>\n<h4>Skema e monolitit t\u00eb vitit 2016<\/h4>\n<p>\nPara jush jan\u00eb blloqet kryesore t\u00eb monolitit Dodo IS t\u00eb vitit 2016, dhe pak m\u00eb posht\u00eb \u00ebsht\u00eb shpjegimi i detyrave t\u00eb tyre kryesore. <br \/>\n<img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/25ae104d94957aebbbab6d54ebb62f5e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Kasa e D\u00ebrges\u00ebs.<\/b> Regjistrimi i kurier\u00ebve, dh\u00ebnia e porosive kurier\u00ebve.<br \/>\n<b>Qendra e Kontaktit<\/b>. Pranimi i porosive p\u00ebrmes operatorit. <br \/>\n<b>Site<\/b>. Website-t tona (dodopizza.ru, dodopizza.co.uk, dodopizza.by etj.).<br \/>\n<b>Auth<\/b>. Sh\u00ebrbimi i autorizimit dhe autentikimit p\u00ebr backoffice.<br \/>\n<b>Tracker<\/b>. Tracker i porosive n\u00eb kuzhin\u00eb. Sh\u00ebrbimi i sh\u00ebnimit t\u00eb statusit t\u00eb gatishm\u00ebris\u00eb gjat\u00eb p\u00ebrgatitjes s\u00eb porosis\u00eb. <br \/>\n<b>Kasa e Restorantit<\/b>. Pranimi i porosive n\u00eb restorant, nd\u00ebrfaqet e kasieres.<br \/>\n<b>Eksport<\/b>. Eksportimi i raporteve n\u00eb 1C p\u00ebr kontabilitetin.<br \/>\n<b>Njoftimet dhe dokumentet<\/b>. Komandat me z\u00eb n\u00eb kuzhin\u00eb (p.sh., \"Arriti nj\u00eb pizz\u00eb e re\") + printimi i dokumenteve p\u00ebr kurier\u00ebt.<br \/>\n<b>Menaxheri i Ndrrimit<\/b>. Nd\u00ebrfaqet p\u00ebr pun\u00ebn e menaxherit t\u00eb ndrrimit: lista e porosive, grafik\u00ebt e performanc\u00ebs, shfaqja e punonj\u00ebsve n\u00eb ndrrim. <br \/>\n<b>Menaxheri i Zyr\u00ebs<\/b>. Nd\u00ebrfaqet p\u00ebr pun\u00ebn e franchiz\u00ebs dhe menaxherit: pranimi i punonj\u00ebsve, raportet mbi pun\u00ebn e picerive.<br \/>\n<b>Tabela e Restorantit<\/b>. Shfaqja e menus\u00eb n\u00eb televizor\u00ebt n\u00eb pizzeri.<br \/>\n<b>Adminka<\/b>. Cil\u00ebsimet n\u00eb pizzerin\u00eb e caktuar: menu, \u00e7mimet, regjistrimi, kodet promovuese, oferta, banners p\u00ebr website etj.<br \/>\n<b>K\u00ebndi Personal i Punonj\u00ebsit<\/b>. Grafik\u00ebt e pun\u00ebs s\u00eb punonj\u00ebsve, informacion p\u00ebr punonj\u00ebsit.<br \/>\n<b>Tabela e Motivimit n\u00eb Kuzhin\u00eb<\/b>. Nj\u00eb ekran i ve\u00e7ant\u00eb q\u00eb ndodhet n\u00eb kuzhin\u00eb dhe tregon shpejt\u00ebsin\u00eb e pun\u00ebs s\u00eb pizzamaker-\u00ebve.<br \/>\n<b>Komunikimi<\/b>. D\u00ebrgimi i sms dhe email.<br \/>\n<b>FileStorage<\/b>. Sh\u00ebrbimi yn\u00eb p\u00ebr pranimin dhe dor\u00ebzimin e skedar\u00ebve statik\u00eb.<\/p>\n<p>P\u00ebrpjekjet e para p\u00ebr t\u00eb zgjidhur problemet na ndihmuan, por ishin vet\u00ebm nj\u00eb pushim p\u00ebrkoh\u00ebsor. Nuk ishin zgjidhje sistemike, prandaj ishte e qart\u00eb se duhej t\u00eb b\u00ebhej di\u00e7ka me bazat. P\u00ebr shembull, ndarja e baz\u00ebs s\u00eb p\u00ebrgjithshme n\u00eb disa m\u00eb t\u00eb specializuara. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"Q1\"><\/a><\/noindex><\/p>\n<h4>Duke filluar t\u00eb shkarkojm\u00eb monolitin: ndarja e Auth dhe Tracker<\/h4>\n<p>\nSh\u00ebrbimet kryesore q\u00eb at\u00ebher\u00eb regjistronin dhe lexonin m\u00eb shum\u00eb nga baza ishin:<\/p>\n<ol>\n<li>Auth. Sh\u00ebrbimi i autorizimit dhe autentikimit p\u00ebr backoffice.<\/li>\n<li>Tracker. Tracker i porosive n\u00eb kuzhin\u00eb. Sh\u00ebrbimi i sh\u00ebnimit t\u00eb statusit t\u00eb gatishm\u00ebris\u00eb gjat\u00eb p\u00ebrgatitjes s\u00eb porosis\u00eb. <\/li>\n<\/ol>\n<p>\n<noindex><a rel=\"nofollow\" name=\"Q2\"><\/a><\/noindex><\/p>\n<h4>\u00c7far\u00eb b\u00ebn Auth<\/h4>\n<p>\nAuth \u00ebsht\u00eb sh\u00ebrbimi p\u00ebrmes t\u00eb cilit p\u00ebrdoruesit identifikohen n\u00eb backoffice (n\u00eb an\u00ebn e klientit ka nj\u00eb hyrje t\u00eb pavarur). Gjithashtu, b\u00ebhet k\u00ebrkesa p\u00ebr t\u00eb v\u00ebrtetuar se ka t\u00eb drejtat e nevojshme p\u00ebr qasje dhe se k\u00ebto t\u00eb drejta nuk jan\u00eb ndryshuar q\u00eb nga hera e fundit e hyrjes. P\u00ebrdoret gjithashtu p\u00ebr hyrjen e pajisjeve n\u00eb pizzeri. <\/p>\n<p>P\u00ebr shembull, n\u00ebse d\u00ebshirojm\u00eb t\u00eb hapim n\u00eb televizorin q\u00eb v hanging n\u00eb sall\u00eb, nj\u00eb tabel\u00eb me statuset e porosive t\u00eb gatshme. At\u00ebher\u00eb hapim auth.dodopizza.ru, zgjedhim \"Hyrje si pajisje\", shfaqet nj\u00eb kod, i cili mund t\u00eb vendoset n\u00eb nj\u00eb faqe speciale n\u00eb kompjuterin e menaxherit t\u00eb ndrrimit, duke specifikuar tipin e pajisjes. Televizori do t\u00eb kaloj\u00eb vet\u00eb n\u00eb nd\u00ebrfaqen e nevojshme t\u00eb pizzeris\u00eb s\u00eb tij dhe do t\u00eb filloj\u00eb t\u00eb shfaq\u00eb emrat e klient\u00ebve t\u00eb cil\u00ebve porosit\u00eb jan\u00eb gati. <\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/7a246bcbdbf0dcd6af3e21eb1645e9ac.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"Q3\"><\/a><\/noindex><\/p>\n<h4>Nga vijn\u00eb ngarkesat? <\/h4>\n<p>\n\u00c7do p\u00ebrdorues i regjistruar n\u00eb backoffice p\u00ebr \u00e7do k\u00ebrkes\u00eb kontrollet nga baza, n\u00eb tabel\u00ebn e p\u00ebrdoruesve, duke p\u00ebrdorur nj\u00eb \u0437\u0430\u043f\u0440\u043e\u0441 sql p\u00ebr t\u00eb marr\u00eb p\u00ebrdoruesin dhe kontrolluar n\u00ebse ka t\u00eb drejtat e nevojshme dhe t\u00eb drejtat p\u00ebr k\u00ebt\u00eb faqe. <\/p>\n<p>\u00c7do pajisje b\u00ebn t\u00eb nj\u00ebjt\u00ebn gj\u00eb, vet\u00ebm me tabel\u00ebn e pajisjeve duke kontrolluar rolin dhe t\u00eb drejtat e saj. Nj\u00eb num\u00ebr i madh k\u00ebrkesash n\u00eb baz\u00ebn master \u00e7on n\u00eb ngarkesa dhe shpenzime burimesh t\u00eb baz\u00ebs s\u00eb p\u00ebrgjithshme p\u00ebr k\u00ebto operacione.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"Q4\"><\/a><\/noindex><\/p>\n<h4>Duke shkarkuar Auth<\/h4>\n<p>\nAuth ka nj\u00eb domain t\u00eb izoluar, q\u00eb do t\u00eb thot\u00eb se t\u00eb dh\u00ebnat mbi p\u00ebrdoruesit, hyrjet ose pajisjet shkojn\u00eb n\u00eb sh\u00ebrbimin (deri tani t\u00eb ardhsh\u00ebm) dhe atje mbeten. N\u00ebse ndokush ka nevoj\u00eb p\u00ebr to, ai do t\u00eb shkonte n\u00eb k\u00ebt\u00eb sh\u00ebrbim p\u00ebr t\u00eb marr\u00eb t\u00eb dh\u00ebnat.<\/p>\n<p><b>I SHKONI.<\/b> Schema e pun\u00ebs fillimisht ishte k\u00ebshtu:<\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/60ca37fb873cb4fff4a30691e9f1ea56.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nD\u00ebshiroj t\u00eb shpjegoj pak sesi funksiononte:<\/p>\n<ol>\n<li>K\u00ebrkesa nga jasht\u00eb vjen n\u00eb backend (aty \u00ebsht\u00eb Asp.Net MVC), sjell me vete nj\u00eb cookie seance, e cila p\u00ebrdoret p\u00ebr t\u00eb marr\u00eb t\u00eb dh\u00ebnat e seanc\u00ebs nga Redis(1). Ajo ose ka informacion p\u00ebr qasjet, dhe at\u00ebher\u00eb qasja n\u00eb kontrollues \u00ebsht\u00eb e hapur (3,4), ose jo. <\/li>\n<li>N\u00ebse nuk ka qasje, duhet t\u00eb kaloni procedur\u00ebn e autorizimit. K\u00ebtu p\u00ebr thjesht\u00ebsim ajo tregohet si pjes\u00eb e rrug\u00ebs n\u00eb at\u00eb atribut, megjithat\u00eb, \u00ebsht\u00eb nj\u00eb kalim n\u00eb faqen e hyrjes. N\u00eb rastin e nj\u00eb skenari pozitiv, ne do t\u00eb marrim nj\u00eb seanc\u00eb t\u00eb mbushur si\u00e7 duhet dhe do t\u00eb kalojm\u00eb n\u00eb Kontrollerin e Backoffice. <\/li>\n<li>N\u00ebse t\u00eb dh\u00ebnat jan\u00eb aty, duhet t\u00eb kontrollohet n\u00ebse jan\u00eb t\u00eb sakta n\u00eb baz\u00ebn e p\u00ebrdoruesit. A e ka ndryshuar roli i tij, a duhet ta ndalojm\u00eb tani t\u00eb hyj\u00eb n\u00eb k\u00ebt\u00eb faqe. N\u00eb k\u00ebt\u00eb rast, pas marrjes s\u00eb seanc\u00ebs (1), duhet t\u00eb shkojm\u00eb direkt n\u00eb baz\u00eb dhe t\u00eb kontrollojm\u00eb t\u00eb drejtat e p\u00ebrdoruesit p\u00ebrmes shtres\u00ebs s\u00eb logjik\u00ebs s\u00eb autentifikimit (2). M\u00eb pas ose n\u00eb faqen e hyrjes ose kalimi n\u00eb kontrollues. Nj\u00eb sistem i till\u00eb i thjesht\u00eb, por megjithat\u00eb jo shum\u00eb standart.<\/li>\n<li>N\u00ebse t\u00eb gjitha procedurat jan\u00eb p\u00ebrfunduar, at\u00ebher\u00eb kalojm\u00eb m\u00eb tutje n\u00eb logjik\u00ebn n\u00eb kontrollet dhe metoda. <\/li>\n<\/ol>\n<p>\nT\u00eb dh\u00ebnat e p\u00ebrdoruesve jan\u00eb t\u00eb ndara nga t\u00eb gjitha t\u00eb dh\u00ebnat e tjera, ato ruhen n\u00eb nj\u00eb tabel\u00eb t\u00eb ve\u00e7ant\u00eb t\u00eb an\u00ebtar\u00ebsis\u00eb, funksionet nga shtresa e logjik\u00ebs AuthService mjaft mir\u00eb mund t\u00eb b\u00ebhen metoda API. Kufijt\u00eb e domainit jan\u00eb t\u00eb p\u00ebrcaktuar qart\u00eb: p\u00ebrdoruesit, rolet e tyre, t\u00eb dh\u00ebnat p\u00ebr qasjen, dh\u00ebnia dhe t\u00ebrheqja e qasjes. T\u00eb gjitha duken se mund t\u00eb nxirren n\u00eb nj\u00eb sh\u00ebrbim t\u00eb ve\u00e7ant\u00eb.<\/p>\n<p><b>KISHA.<\/b> K\u00ebshtu edhe b\u00ebm\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/3e8629b75ae68b95afa475286d4c5d2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKy qasje ka nj\u00eb s\u00ebr\u00eb problemesh. P\u00ebr shembull, thirrja e metod\u00ebs brenda nj\u00eb procesi nuk \u00ebsht\u00eb e nj\u00ebjt\u00eb me thirrjen p\u00ebr nj\u00eb sh\u00ebrbim t\u00eb jasht\u00ebm p\u00ebrmes http. Latenza, besueshm\u00ebria, mir\u00ebmbajtja, transparenca e operacionit jan\u00eb krejt\u00ebsisht t\u00eb tjera. M\u00eb shum\u00eb rreth k\u00ebtyre problemeve ka folur Andrey Morevsky n\u00eb referatin e tij <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=XeNrWkRmVWw\">\u00ab50 nuanca t\u00eb mikrosherbimeve\u00bb<\/a><\/noindex>.<\/p>\n<p>Sh\u00ebrbimi i autentifikimit dhe sh\u00ebrbimi i pajisjeve p\u00ebrdoren p\u00ebr backoffice, pra p\u00ebr sh\u00ebrbimet dhe nd\u00ebrfaqet q\u00eb p\u00ebrdoren n\u00eb prodhim. Autentifikimi p\u00ebr sh\u00ebrbimet e klient\u00ebve (si websiti apo aplikacioni mobil) ndodh ve\u00e7mas pa p\u00ebrdorur Auth. Ndara zgjati rreth nj\u00eb vit, dhe tani p\u00ebrs\u00ebri po merremi me k\u00ebt\u00eb tem\u00eb, duke e kaluar sistemin tashm\u00eb n\u00eb sh\u00ebrbime t\u00eb reja autentifikimi (me protokollet standarde). <\/p>\n<p>                        <b class=\"spoiler_title\">Pse ndarja zgjati kaq gjat\u00eb?<\/b><br \/>\n                        N\u00eb rrug\u00eb kishte shum\u00eb probleme q\u00eb ngadal\u00ebsuan:<\/p>\n<ol>\n<li>D\u00ebshironim t\u00eb transferonim t\u00eb dh\u00ebnat p\u00ebr p\u00ebrdoruesit, pajisjet dhe autentifikimin nga bazat e t\u00eb dh\u00ebnave n\u00eb vend n\u00eb nj\u00eb t\u00eb vetme. P\u00ebr k\u00ebt\u00eb duhej t\u00eb transferonim t\u00eb gjitha tabelat dhe p\u00ebrdorimin nga identifikatori int n\u00eb identifikatorin global UUId (k\u00ebt\u00eb kod e riprhojti s\u00eb fundmi) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=OGK4Lkd6p6s\">Roman Bukin \u00abUuid \u2014 nj\u00eb histori e madhe e nj\u00eb strukture t\u00eb vog\u00ebl\u00bb<\/a><\/noindex> dhe projekti open-source <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dodopizza\/primitives\">Primitives<\/a><\/noindex>). Ruajtja e t\u00eb dh\u00ebnave p\u00ebr p\u00ebrdoruesit (sepse \u00ebsht\u00eb informacion personal) ka kufizime dhe p\u00ebr disa vende duhet t'i ruhet ve\u00e7mas. Por identifikatori global i p\u00ebrdoruesit duhet t\u00eb ekzistoj\u00eb.<\/li>\n<li>Shum\u00eb tabela n\u00eb baz\u00eb kan\u00eb informacionin mbi auditimin e atij p\u00ebrdoruesi q\u00eb ka kryer operacionin. Kjo k\u00ebrkonte nj\u00eb mekaniz\u00ebm shtes\u00eb p\u00ebr t\u00eb siguruar konsistenc\u00ebn.<\/li>\n<li>Pas krijimit t\u00eb sh\u00ebrbimeve API kishte nj\u00eb periudh\u00eb t\u00eb gjat\u00eb dhe graduale kalimi n\u00eb nj\u00eb sistem tjet\u00ebr. Kalimet duhej t\u00eb ndodhnin pa probleme p\u00ebr p\u00ebrdoruesit dhe k\u00ebrkonin pun\u00eb manuale.<\/li>\n<\/ol>\n<p>Schema e regjistrimit t\u00eb pajisjeve n\u00eb picerin\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/1e054d01de40d63c2994a4d49e47b215.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nArkitektura e p\u00ebrgjithshme pas ndarjes s\u00eb Auth dhe sh\u00ebrbimit t\u00eb Pajisjeve:<\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/069d176197674ef8414981ac98f30704.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Sh\u00ebnim<\/b>. N\u00eb vitin 2020 ne po punojm\u00eb mbi nj\u00eb version t\u00eb ri t\u00eb Auth, i cili \u00ebsht\u00eb i bazuar n\u00eb standardin e autorizimit OAuth 2.0. Ky standard \u00ebsht\u00eb mjaft kompleks, por do t\u00eb jet\u00eb i dobish\u00ebm p\u00ebr zhvillimin e nj\u00eb sh\u00ebrbimi t\u00eb vazhduesh\u00ebm t\u00eb autentifikimit. N\u00eb artikullin \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dododev\/blog\/520046\/\">Holl\u00ebsit\u00eb e autorizimit: nj\u00eb p\u00ebrmbledhje e teknologjis\u00eb OAuth 2.0<\/a><\/noindex>\u00bb, Alexey Chernyaev ka p\u00ebrshkruar standardin sa m\u00eb thjesht dhe qart\u00eb q\u00eb t\u00eb kurseni koh\u00eb n\u00eb studimin e tij.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"Q5\"><\/a><\/noindex><\/p>\n<h4>\u00c7far\u00eb b\u00ebn Tracker <\/h4>\n<p>\nTani p\u00ebr sh\u00ebrbimin e dyt\u00eb t\u00eb ngarkuar. Tracker-i luan nj\u00eb rol t\u00eb dyfisht\u00eb:<\/p>\n<ul>\n<li>Nga nj\u00ebra an\u00eb, detyra e tij \u00ebsht\u00eb t\u00eb tregoj\u00eb punonj\u00ebsve n\u00eb kuzhin\u00eb se cilat porosi jan\u00eb aktualisht n\u00eb pun\u00eb, cilat produkte duhet t\u00eb gatuhen tani. <\/li>\n<li>Nga ana tjet\u00ebr \u2014 t\u00eb dixhitalizoj\u00eb t\u00eb gjitha proceset n\u00eb kuzhin\u00eb. <\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/5d13756308ee0cdb6e4000489b6b402d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKur nj\u00eb produkt i ri shfaqet n\u00eb porosi (p\u00ebr shembull, pica), ai shkon n\u00eb stacionin e tracker-it \u00abRashtimi\u00bb. N\u00eb k\u00ebt\u00eb stacion q\u00ebndron pica-maker q\u00eb merr testin e duhur dhe e rashton at\u00eb, pas s\u00eb cil\u00ebs sh\u00ebnon n\u00eb tablet\u00ebn e tracker-it se ka kryer detyr\u00ebn e tij dhe i kalon baz\u00ebn e rashtuar n\u00eb stacionin tjet\u00ebr \u2014 \u00abFillimi\u00bb. <\/p>\n<p>Aty pica-maker-i tjet\u00ebr e mbush pic\u00ebn, m\u00eb pas sh\u00ebnon n\u00eb tablet\u00eb se ka kryer detyr\u00ebn e tij dhe e vendos pic\u00ebn n\u00eb furr\u00eb (kjo gjithashtu \u00ebsht\u00eb nj\u00eb stacion tjet\u00ebr q\u00eb duhet sh\u00ebnuar n\u00eb tablet\u00eb). Ky sistem ka qen\u00eb q\u00eb n\u00eb fillim n\u00eb Dodo dhe q\u00eb n\u00eb fillimin e ekzistenc\u00ebs s\u00eb Dodo IS. Ajo lejon t\u00eb monitorohet dhe dixhitalizohet t\u00eb gjitha operacionet. P\u00ebr m\u00eb tep\u00ebr, tracker-i sugjeron se si t\u00eb gatuhen produktet t\u00eb ndryshme, udh\u00ebzon \u00e7do lloj produkti p\u00ebrmes skemave t\u00eb tij t\u00eb prodhimit, ruan koh\u00ebn optimale t\u00eb gatimit dhe ndjek t\u00eb gjitha operacionet mbi produktin. <\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/d745bf6f981c1a5b43e6091b090644ad.png\" style=\"display:block;margin: 0 auto;\" \/><i>K\u00ebshtu duket ekrani i tablet\u00ebs n\u00eb stacionin e tracker-it \u00abRashtimi\u00bb<\/i><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"Q6\"><\/a><\/noindex><\/p>\n<h4>Nga vijn\u00eb ngarkesat? <\/h4>\n<p>\nN\u00eb \u00e7do piceri ka rreth pes\u00eb tablet\u00eb me tracker. N\u00eb vitin 2016, kishim m\u00eb shum\u00eb se 100 picerit\u00eb (dhe tani m\u00eb shum\u00eb se 600). \u00c7do tablet b\u00ebn nj\u00eb k\u00ebrkes\u00eb \u00e7do 10 sekonda n\u00eb backend dhe nxjerr t\u00eb dh\u00ebna nga tabela e porosive (lidhet me klientin dhe adres\u00ebn), p\u00ebrb\u00ebrja e porosis\u00eb (lidhet me produktin dhe tregon sasin\u00eb), tabela e regjistrimit t\u00eb motivacionit (ato regjistrojn\u00eb koh\u00ebn e klikimeve). Kur kuzhinieri i pic\u00ebs klikon n\u00eb produktin n\u00eb tracker, ndodh p\u00ebrdit\u00ebsimi i regjistrimeve n\u00eb t\u00eb gjitha k\u00ebto tabela. Tabela e porosive \u00ebsht\u00eb e p\u00ebrbashk\u00ebt, po aty ndodhin edhe fushtimat n\u00eb momentin e pranimit t\u00eb porosis\u00eb, p\u00ebrdit\u00ebsimet nga pjes\u00eb t\u00eb tjera t\u00eb sistemit dhe shum\u00eb lexime, p\u00ebr shembull, n\u00eb televizorin q\u00eb \u00ebsht\u00eb pezull n\u00eb piceri dhe tregon porosit\u00eb e gatshme p\u00ebr klient\u00ebt. <\/p>\n<p>N\u00eb periudh\u00ebn e luft\u00ebs me ngarkesat, kur \u00e7do gj\u00eb dhe \u00e7do person ishte ndihmuar dhe ishte transferuar n\u00eb nj\u00eb replik\u00eb asinkrone t\u00eb baz\u00ebs, k\u00ebto operacione me tracker vazhdonin t\u00eb shkonin n\u00eb baz\u00ebn kryesore. Nuk duhet t\u00eb ket\u00eb asnj\u00eb vones\u00eb k\u00ebtu, t\u00eb dh\u00ebnat duhet t\u00eb jen\u00eb aktuale, pasakt\u00ebsia \u00ebsht\u00eb e papranueshme.<\/p>\n<p>Gjithashtu, mungesa e tabelave dhe indekseve t\u00eb veta nuk lejonte t\u00eb shkruheshin k\u00ebrkesa m\u00eb specifike, t\u00eb p\u00ebrshtatura p\u00ebr p\u00ebrdorimin e tyre. P\u00ebr shembull, trackerit mund t\u2019i nevojitet q\u00eb t\u00eb ket\u00eb nj\u00eb indeks p\u00ebr picerin\u00eb n\u00eb tabel\u00ebn e porosive. Ne gjithmon\u00eb nxjerrim n\u00eb baz\u00ebn e trackerit porosit\u00eb sipas piceris\u00eb. N\u00eb k\u00ebt\u00eb rast, p\u00ebr pranimin e porosis\u00eb nuk ka r\u00ebnd\u00ebsi n\u00eb cil\u00ebn piceri bie, m\u00eb e r\u00ebnd\u00ebsishme \u00ebsht\u00eb cili klient e b\u00ebri k\u00ebt\u00eb porosi. Prandaj, atje nevojitet nj\u00eb indeks p\u00ebr klientin. N\u00eb p\u00ebrve\u00e7im, p\u00ebr trackerin n\u00eb tabel\u00ebn e porosive nuk \u00ebsht\u00eb e nevojshme t\u00eb ruhet ID e kontrollit t\u00eb printuar ose promocionet e lidhura me porosin\u00eb. Kjo informacion nuk e intereson sh\u00ebrbimin ton\u00eb t\u00eb trackerit. N\u00eb baz\u00ebn e p\u00ebrgjithshme monolitike, tabelat mund t\u00eb ishin vet\u00ebm nj\u00eb variant kompromisi midis t\u00eb gjith\u00eb p\u00ebrdoruesve. Kjo ishte nj\u00eb nga problemet fillestare.<\/p>\n<p><b>I SHKONI. <\/b>Fillimisht, arkitektura ishte e till\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/085ebab3131ae5edc772d1e6f8c6de76.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEdhe pas ndarjes n\u00eb procese t\u00eb ve\u00e7anta, pjesa m\u00eb e madhe e kodit mbeti e p\u00ebrbashk\u00ebt p\u00ebr sh\u00ebrbime t\u00eb ndryshme. \u00c7do gj\u00eb, pos controllers, ishte e nj\u00ebjt\u00eb dhe jetonte n\u00eb nj\u00eb depo. U p\u00ebrdor\u00ebn metoda t\u00eb p\u00ebrbashk\u00ebta t\u00eb sh\u00ebrbimeve, repository-\u00ebve, nj\u00eb baz\u00eb e p\u00ebrbashk\u00ebt, ku ndodheshin tabelat e p\u00ebrbashk\u00ebta.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"Q7\"><\/a><\/noindex><\/p>\n<h4>Duke shkarkuar Tracker<br \/>\n<\/h4>\n<p>\nProblemi kryesor me tracker-in \u00ebsht\u00eb se t\u00eb dh\u00ebnat duhet t\u00eb sinkronizohen midis bazave t\u00eb ndryshme. Ky \u00ebsht\u00eb gjithashtu dallimi i tij kryesor nga ndarja e sh\u00ebrbimit Auth, porosin\u00eb dhe statusin e saj mund t\u00eb ndryshojn\u00eb dhe duhet t\u00eb shfaqen n\u00eb sh\u00ebrbime t\u00eb ndryshme. <\/p>\n<p>Ne pranojm\u00eb porosi n\u00eb Kassen e Restauranti (ky \u00ebsht\u00eb nj\u00eb sh\u00ebrbim), ajo ruhet n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave me statusin \"Pranuar\". Pas k\u00ebsaj, ajo duhet t\u00eb kaloj\u00eb n\u00eb tracker, ku statusi i saj do t\u00eb ndryshoj\u00eb disa her\u00eb: nga \"Kuzhina\" n\u00eb \"I Paketuar\". N\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, me porosin\u00eb mund t\u00eb ndodhin disa ndikime t\u00eb jashtme nga Kassa ose nd\u00ebrfaqja e Menaxherit t\u00eb Nd\u00ebrrimit. M\u00eb posht\u00eb \u00ebsht\u00eb nj\u00eb tabel\u00eb me statuset e porosis\u00eb dhe p\u00ebrshkrimet e tyre:<\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/b6a5a586a3f65715acccea2114725c8e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSkema e ndryshimit t\u00eb statuset t\u00eb porosis\u00eb duket k\u00ebshtu:<\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/92e58a2d60706b0e32aedbef7fa42f93.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nStatuset ndryshojn\u00eb mes sistemeve t\u00eb ndryshme. Dhe k\u00ebtu tracker-i nuk \u00ebsht\u00eb sistemi p\u00ebrfundimtar ku mbyllet informacioni. Ne kemi par\u00eb disa qasje t\u00eb mundshme p\u00ebr ndarje n\u00eb k\u00ebt\u00eb rast:<\/p>\n<ol>\n<li><b>Konsolidojm\u00eb t\u00eb gjitha veprimet e porosis\u00eb n\u00eb nj\u00eb sh\u00ebrbim.<\/b> N\u00eb rastin ton\u00eb, ky opsion k\u00ebrkon shum\u00eb sh\u00ebrbim p\u00ebr p\u00ebrpunimin e porosis\u00eb. N\u00ebse do t\u00eb ndaleshim k\u00ebtu, do t\u00eb krijonim nj\u00eb monolit t\u00eb dyt\u00eb. Problemet nuk do t\u00eb zgjidhen.<\/li>\n<li><b>Nj\u00eb sistem b\u00ebn thirrje n\u00eb nj\u00eb tjet\u00ebr.<\/b> Opsioni i dyt\u00eb \u00ebsht\u00eb m\u00eb interesant. Por me k\u00ebt\u00eb jan\u00eb t\u00eb mundshme zinxhir\u00eb thirrjesh (<noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/sre-book\/chapters\/addressing-cascading-failures\/\">d\u00ebshtime kaskad\u00eb<\/a><\/noindex>), lidhshm\u00ebria e komponent\u00ebve \u00ebsht\u00eb m\u00eb e lart\u00eb, dhe menaxhimi i saj \u00ebsht\u00eb m\u00eb i komplikuar. <\/li>\n<li><b>Organizojm\u00eb ngjarjet, dhe \u00e7do sh\u00ebrbim komunikon me tjetrin p\u00ebrmes k\u00ebtyre ngjarjeve.<\/b> Si rezultat, u zgjodh opsioni i tret\u00eb, sipas t\u00eb cilit t\u00eb gjith\u00eb sh\u00ebrbimet fillojn\u00eb t\u00eb shk\u00ebmbejn\u00eb ngjarje me nj\u00ebra-tjetr\u00ebn. <\/li>\n<\/ol>\n<p>\nFakti q\u00eb zgjodh\u00ebm opsionin e tret\u00eb do t\u00eb thot\u00eb se p\u00ebr tracker-in do t\u00eb jet\u00eb baza e saj, dhe p\u00ebr \u00e7do ndryshim n\u00eb porosi do t\u00eb d\u00ebrgoj\u00eb nj\u00eb ngjarje p\u00ebr k\u00ebt\u00eb, n\u00eb t\u00eb cil\u00ebn regjistrohen sh\u00ebrbime t\u00eb tjera dhe q\u00eb gjithashtu shkon n\u00eb baz\u00ebn kryesore. P\u00ebr k\u00ebt\u00eb na nevojitej nj\u00eb sh\u00ebrbim q\u00eb do t\u00eb siguronte d\u00ebrgimin e mesazheve midis sh\u00ebrbimeve. <\/p>\n<p>N\u00eb at\u00eb koh\u00eb, n\u00eb stekun ton\u00eb tashm\u00eb kishim RabbitMQ, nga i cili erdhi zgjidhja p\u00ebrfundimtare p\u00ebr ta p\u00ebrdorur si broker t\u00eb mesazheve. N\u00eb skem\u00eb tregohet kalimi i porosis\u00eb nga Kassa e Restauranti p\u00ebrmes Tracker-it, ku ajo ndryshon statuset e saj dhe shfaqet n\u00eb nd\u00ebrfaqen e Porosive t\u00eb menaxherit. <b>U B\u00cb<\/b>: <\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/eed09f7b11202556d6641036aa8ffb1f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p>                        <b class=\"spoiler_title\">Rruga e porosis\u00eb p\u00ebrmes hapave<\/b><br \/>\n                        Rruga e porosis\u00eb fillon n\u00eb nj\u00eb nga sh\u00ebrbimet burim t\u00eb porosis\u00eb. K\u00ebtu \u00ebsht\u00eb Kassa e Restauranti: <\/p>\n<ol>\n<li>N\u00eb Kasa, porosia \u00ebsht\u00eb plot\u00ebsisht gati dhe \u00ebsht\u00eb koha ta d\u00ebrgojm\u00eb n\u00eb tracker. Aktivizohet ngjarja p\u00ebr t\u00eb cil\u00ebn \u00ebsht\u00eb regjistruar tracker-i. <\/li>\n<li>Tracker-i, duke pranuar porosin\u00eb, e ruan at\u00eb n\u00eb baz\u00ebn e tij t\u00eb dh\u00ebnave, duke krijuar k\u00ebshtu ngjarjen \"PorosiaEPranuarNgaTracker-i\" dhe e d\u00ebrgon at\u00eb n\u00eb RMQ. <\/li>\n<li>N\u00eb shiritin e ngjarjeve t\u00eb porosis\u00eb tashm\u00eb jan\u00eb regjistruar disa procesor\u00eb. E r\u00ebnd\u00ebsishme p\u00ebr ne \u00ebsht\u00eb ai q\u00eb b\u00ebn sinkronizimin me baz\u00ebn monolitike. <\/li>\n<li>Procesori merr ngjarjen, zgjidh t\u00eb dh\u00ebnat e r\u00ebnd\u00ebsishme p\u00ebr t\u00eb: n\u00eb rastin ton\u00eb, ky \u00ebsht\u00eb statusi i porosis\u00eb \"Pranuar nga Tracker\" dhe azhurnon entitetin e porosis\u00eb n\u00eb baz\u00ebn kryesore. <\/li>\n<\/ol>\n<p>N\u00ebse dikush ka nevoj\u00eb p\u00ebr porosin\u00eb sakt\u00ebsisht nga tabela monolitike orders, at\u00ebher\u00eb mund t\u00eb merret edhe nga aty. P\u00ebr shembull, kjo \u00ebsht\u00eb e nevojshme p\u00ebr nd\u00ebrfaqen e Porosive n\u00eb Menaxherin e Nd\u00ebrrimit:<\/p>\n<p><img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/97c16e7fecd6709aad7e10f9dff6c037.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nT\u00eb gjitha sh\u00ebrbimet e tjera gjithashtu mund t\u00eb regjistrohen p\u00ebr ngjarjet e porosis\u00eb nga tracker-i p\u00ebr t\u2019i p\u00ebrdorur ato p\u00ebr vete.<\/p>\n<p>N\u00ebse pas nj\u00eb kohe t\u00eb caktuar porosia merret n\u00eb pun\u00eb, statusi i saj fillimisht ndryshohet n\u00eb baz\u00ebn e saj (baz\u00ebn e Tracker-it), dhe m\u00eb pas menj\u00ebher\u00eb gjenerohet ngjarja \"Porosia n\u00eb Pun\u00eb\". Kjo gjithashtu kalon n\u00eb RMQ, ku sinkronizohet n\u00eb baz\u00ebn monolitike dhe d\u00ebrgohet n\u00eb sh\u00ebrbimet e tjera. N\u00eb k\u00ebt\u00eb proces mund t\u00eb ket\u00eb probleme t\u00eb ndryshme, m\u00eb shum\u00eb detaje mund t\u00eb shikoni n\u00eb raportin e Zhenya Peshkov <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=DWfJWCWV_eQ\">p\u00ebr detajet e zbatimit t\u00eb Eventual Consistency n\u00eb Tracker<\/a><\/noindex>. <\/p>\n<h4>Arkitektura p\u00ebrfundimtare pas ndryshimeve n\u00eb Auth dhe Tracker<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Historia e arkitektur\u00ebs Dodo IS: rruga e back-office-it\" src=\"\/wp-content\/uploads\/2020\/10\/7cc517f78c8a381bd570cd26be25ace0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Duke p\u00ebrmbledhur p\u00ebrfundimisht:<\/b> fillimisht kisha mendimin ta paketoj historin\u00eb n\u00ebnt\u00ebvje\u00e7are t\u00eb sistemit Dodo IS n\u00eb nj\u00eb artikull. D\u00ebshiroja t\u00eb flisja shpejt dhe thjesht p\u00ebr etapat e evolucionit. Megjithat\u00eb, duke u ulur p\u00ebr materialin, kuptova se gjith\u00e7ka \u00ebsht\u00eb shum\u00eb m\u00eb e komplikuar dhe m\u00eb interesante se sa duket. <\/p>\n<p>Duke reflektuar mbi dobin\u00eb (ose munges\u00ebn e saj) nga nj\u00eb material i till\u00eb, arrita n\u00eb p\u00ebrfundimin se zhvillimi i vazhduesh\u00ebm \u00ebsht\u00eb i pamundur pa kronika t\u00eb plota ngjarjesh, retrospektiv\u00eb t\u00eb zhvilluara dhe analiza t\u00eb vendimeve tona t\u00eb kaluara.<\/p>\n<p>Shpresoj se ju ka qen\u00eb e dobishme dhe interesante t\u00eb m\u00ebsoni p\u00ebr rrug\u00ebn ton\u00eb. Tani jam p\u00ebrball\u00eb zgjedhjes, se cila pjes\u00eb e sistemit Dodo IS t\u00eb p\u00ebrshkruaj n\u00eb artikullin e ardhsh\u00ebm: shkruani n\u00eb komentet ose voto.<\/p>\n<p class=\"for_users_only_msg\">Vet\u00ebm p\u00ebrdoruesit e regjistruar mund t\u00eb marrin pjes\u00eb n\u00eb anket\u00eb. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Hyni<\/a><\/noindex>, ju lutemi.<\/p>\n<h2 class=\"default-block__polling-title\">P\u00ebr cil\u00ebn pjes\u00eb t\u00eb Dodo IS do t\u00eb donit t\u00eb dinit n\u00eb artikullin e ardhsh\u00ebm?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">24,1%<\/strong>Monoliti i hersh\u00ebm n\u00eb Dodo IS (2011-2015)<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">24,1%<\/strong>Problemet e para dhe zgjidhjet e tyre (2015-2016)<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">20,7%<\/strong>Rruga e pjes\u00ebs klient: fasada mbi baz\u00ebn (2016-2017)<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">36,2%<\/strong>Historia e mikrosherbimeve t\u00eb v\u00ebrteta (2018-2019)<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">44,8%<\/strong>P\u00ebrfundimi i prerjes s\u00eb monolitit dhe stabilizimi i arkitektur\u00ebs<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">29,3%<\/strong>P\u00ebr planet e m\u00ebtejshme t\u00eb zhvillimit t\u00eb sistemit<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">19,0%<\/strong>Nuk dua t\u00eb di asgj\u00eb p\u00ebr Dodo IS<\/p>\n<\/li>\n<\/ul>\n<p>    58 p\u00ebrdorues votuan. 6 p\u00ebrdorues abstenuan.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzadev\/blog\/506136\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0425\u0430\u0431\u0440 \u043c\u0435\u043d\u044f\u0435\u0442 \u043c\u0438\u0440. \u0411\u043e\u043b\u044c\u0448\u0435 \u0433\u043e\u0434\u0430 \u043c\u044b \u0432\u0435\u0434\u0451\u043c \u0441\u0432\u043e\u0439 \u0431\u043b\u043e\u0433. \u0413\u0434\u0435-\u0442\u043e \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u043d\u0430\u043c \u043f\u0440\u0438\u043b\u0435\u0442\u0435\u043b \u0432\u043f\u043e\u043b\u043d\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0444\u0438\u0434\u0431\u044d\u043a \u043e\u0442 \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d: \u00ab\u0414\u043e\u0434\u043e, \u0432\u043e\u0442 \u0432\u044b \u0432\u0435\u0437\u0434\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0441\u0432\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430. \u0410 \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430? \u0418 \u0437\u0430\u0447\u0435\u043c \u043e\u043d\u0430 \u043d\u0443\u0436\u043d\u0430 \u0441\u0435\u0442\u0438 \u043f\u0438\u0446\u0446\u0435\u0440\u0438\u0439?\u00bb. \u041c\u044b \u043f\u043e\u0441\u0438\u0434\u0435\u043b\u0438, \u043f\u043e\u0434\u0443\u043c\u0430\u043b\u0438 \u0438 \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e \u0432\u044b \u043f\u0440\u0430\u0432\u044b. \u041c\u044b \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0432\u0441\u0451 \u043d\u0430 \u043f\u0430\u043b\u044c\u0446\u0430\u0445, \u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":95787,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-95786","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0425\u0430\u0431\u0440 \u043c\u0435\u043d\u044f\u0435\u0442 \u043c\u0438\u0440. \u0411\u043e\u043b\u044c\u0448\u0435 \u0433\u043e\u0434\u0430 \u043c\u044b \u0432\u0435\u0434\u0451\u043c \u0441\u0432\u043e\u0439 \u0431\u043b\u043e\u0433. \u0413\u0434\u0435-\u0442\u043e \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u043d\u0430\u043c \u043f\u0440\u0438\u043b\u0435\u0442\u0435\u043b \u0432\u043f\u043e\u043b\u043d\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0444\u0438\u0434\u0431\u044d\u043a \u043e\u0442 \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d: \u00ab\u0414\u043e\u0434\u043e, \u0432\u043e\u0442 \u0432\u044b \u0432\u0435\u0437\u0434\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0441\u0432\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/istoriya-arhitektury-dodo-is-put-bekofisa\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b Dodo IS: \u043f\u0443\u0442\u044c \u0431\u044d\u043a\u043e\u0444\u0438\u0441\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0425\u0430\u0431\u0440 \u043c\u0435\u043d\u044f\u0435\u0442 \u043c\u0438\u0440. \u0411\u043e\u043b\u044c\u0448\u0435 \u0433\u043e\u0434\u0430 \u043c\u044b \u0432\u0435\u0434\u0451\u043c \u0441\u0432\u043e\u0439 \u0431\u043b\u043e\u0433. \u0413\u0434\u0435-\u0442\u043e \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u043d\u0430\u043c \u043f\u0440\u0438\u043b\u0435\u0442\u0435\u043b \u0432\u043f\u043e\u043b\u043d\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0444\u0438\u0434\u0431\u044d\u043a \u043e\u0442 \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d: \u00ab\u0414\u043e\u0434\u043e, \u0432\u043e\u0442 \u0432\u044b \u0432\u0435\u0437\u0434\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0441\u0432\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/istoriya-arhitektury-dodo-is-put-bekofisa\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-03T11:42:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-03T11:42:12+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Historia e arkitektur\u00ebs Dodo IS: rruga e b\u00ebrtham\u00ebs | ProHoster","description":"Habr po ndryshon bot\u00ebn. M\u00eb shum\u00eb se nj\u00eb vit ne po mbajm\u00eb blogun ton\u00eb. Diku gjasht\u00eb muaj m\u00eb par\u00eb mor\u00ebm nj\u00eb feedback mjaft logjik nga habr-chani: \"Dodo, k\u00ebtu flisni kudo se keni sistemin tuaj.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/istoriya-arhitektury-dodo-is-put-bekofisa","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b Dodo IS: \u043f\u0443\u0442\u044c \u0431\u044d\u043a\u043e\u0444\u0438\u0441\u0430 | ProHoster","og:description":"\u0425\u0430\u0431\u0440 \u043c\u0435\u043d\u044f\u0435\u0442 \u043c\u0438\u0440. \u0411\u043e\u043b\u044c\u0448\u0435 \u0433\u043e\u0434\u0430 \u043c\u044b \u0432\u0435\u0434\u0451\u043c \u0441\u0432\u043e\u0439 \u0431\u043b\u043e\u0433. \u0413\u0434\u0435-\u0442\u043e \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u043d\u0430\u043c \u043f\u0440\u0438\u043b\u0435\u0442\u0435\u043b \u0432\u043f\u043e\u043b\u043d\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0444\u0438\u0434\u0431\u044d\u043a \u043e\u0442 \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d: \u00ab\u0414\u043e\u0434\u043e, \u0432\u043e\u0442 \u0432\u044b \u0432\u0435\u0437\u0434\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0441\u0432\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/istoriya-arhitektury-dodo-is-put-bekofisa","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-03T11:42:12+00:00","article:modified_time":"2020-10-03T11:42:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"95786","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:57:48","updated":"2022-09-27 15:42:36","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/95786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=95786"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/95786\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/95787"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=95786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=95786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=95786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}