[{"data":1,"prerenderedAt":1767},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fde\u002Ftech\u002Fheadless-e-commerce-migration-roadmap-risikomaessiges-rollout":13},{"i18nKey":4,"paths":5},"tech-006-2026-08",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Ftech\u002Fheadless-e-commerce-migration-roadmap-risikomaessiges-rollout","\u002Fen\u002Ftech\u002Fheadless-ecommerce-migration-roadmap-risk-management","\u002Fes\u002Ftech\u002Fhoja-de-ruta-migracion-comercio-sin-cabecera","\u002Ffr\u002Ftech\u002Fcommerce-headless-migration-roadmap","\u002Fit\u002Ftech\u002Froadmap-migrazione-commerce-headless","\u002Fru\u002Ftech\u002Fmigracion-headless-roadmap-gestion-riesgos","\u002Ftr\u002Ftech\u002Fheadless-e-ticaret-migration-roadmap-ve-risk-yonetimi",{"_path":6,"_dir":14,"_draft":15,"_partial":15,"_locale":16,"title":17,"description":18,"publishedAt":19,"modifiedAt":19,"category":20,"i18nKey":4,"tags":21,"readingTime":27,"author":28,"body":29,"_type":1761,"_id":1762,"_source":1763,"_file":1764,"_stem":1765,"_extension":1766},"tech",false,"","Headless E-Commerce: Migration Roadmap und Risikomanagement","Sichere Headless-Migration durch phasenweise Rollout, SEO-Schutzmaßnahmen und Add-to-Cart-Abandon-Analyse mit operativen Kontrollmechanismen.","2026-08-04","headless",[22,23,24,25,26],"headless-commerce","migration-strategie","seo-schutz","risikomanagement","composable-architektur",9,"Roibase",{"type":30,"children":31,"toc":1754},"root",[32,40,47,52,63,202,207,217,511,516,522,527,537,545,550,570,580,598,730,735,741,746,754,788,793,1076,1081,1091,1097,1102,1112,1536,1541,1551,1716,1721,1727,1732,1748],{"type":33,"tag":34,"props":35,"children":36},"element","p",{},[37],{"type":38,"value":39},"text","Die Headless-E-Commerce-Migration ist 2026 nicht mehr die Frage \"Sollen wir?\", sondern \"Wie machen wir es richtig?\". Wie bei jeder großen Architektur-Transformation können falsche Schritte den Revenue um 12–18 % senken (Forrester 2025). Verhaltens­signale beim Hinzufügen zum Warenkorb gehen verloren, SEO-Autorität wird zurückgesetzt, Micro-Optimierungen im Conversion-Funnel verdampfen. In diesem Artikel zeigen wir, wie Sie die Headless-Migration als diszipliniertes Engineerprojekt angehen und Risiken kontrollieren.",{"type":33,"tag":41,"props":42,"children":44},"h2",{"id":43},"phasengerechter-rollout-gegen-den-big-bang-ansatz",[45],{"type":38,"value":46},"Phasengerechter Rollout gegen den \"Big Bang\"-Ansatz",{"type":33,"tag":34,"props":48,"children":49},{},[50],{"type":38,"value":51},"Der klassische Fehler bei Headless-Migrationen: der \"Big Bang\"-Ansatz. Die gesamte Website in einer Nacht auf den neuen Stack zu verschieben, bedeutet, Revenue zu riskieren. Ein phasengerechter Rollout leitet kontrollierte Traffic-Anteile zur neuen Architektur und ermöglicht echtes Nutzerverhalten als Lernquelle.",{"type":33,"tag":34,"props":53,"children":54},{},[55,61],{"type":33,"tag":56,"props":57,"children":58},"strong",{},[59],{"type":38,"value":60},"Route-basierte Phasierung:",{"type":38,"value":62}," Erste Phase könnten Kategorieseiten oder Produktdetailseiten sein — Homepage und Checkout folgen später. Beispiel eines 6-Wochen-Plans:",{"type":33,"tag":64,"props":65,"children":66},"table",{},[67,96],{"type":33,"tag":68,"props":69,"children":70},"thead",{},[71],{"type":33,"tag":72,"props":73,"children":74},"tr",{},[75,81,86,91],{"type":33,"tag":76,"props":77,"children":78},"th",{},[79],{"type":38,"value":80},"Woche",{"type":33,"tag":76,"props":82,"children":83},{},[84],{"type":38,"value":85},"Scope",{"type":33,"tag":76,"props":87,"children":88},{},[89],{"type":38,"value":90},"Traffic",{"type":33,"tag":76,"props":92,"children":93},{},[94],{"type":38,"value":95},"Risiko-Metrik",{"type":33,"tag":97,"props":98,"children":99},"tbody",{},[100,129,156,179],{"type":33,"tag":72,"props":101,"children":102},{},[103,109,119,124],{"type":33,"tag":104,"props":105,"children":106},"td",{},[107],{"type":38,"value":108},"1–2",{"type":33,"tag":104,"props":110,"children":111},{},[112],{"type":33,"tag":113,"props":114,"children":116},"code",{"className":115},[],[117],{"type":38,"value":118},"\u002Fcollections\u002F{slug}",{"type":33,"tag":104,"props":120,"children":121},{},[122],{"type":38,"value":123},"5 %",{"type":33,"tag":104,"props":125,"children":126},{},[127],{"type":38,"value":128},"ATC-Rate, Exit-Rate",{"type":33,"tag":72,"props":130,"children":131},{},[132,137,146,151],{"type":33,"tag":104,"props":133,"children":134},{},[135],{"type":38,"value":136},"3–4",{"type":33,"tag":104,"props":138,"children":139},{},[140],{"type":33,"tag":113,"props":141,"children":143},{"className":142},[],[144],{"type":38,"value":145},"\u002Fproducts\u002F{slug}",{"type":33,"tag":104,"props":147,"children":148},{},[149],{"type":38,"value":150},"10 %",{"type":33,"tag":104,"props":152,"children":153},{},[154],{"type":38,"value":155},"Conversion Rate, Scroll-Tiefe",{"type":33,"tag":72,"props":157,"children":158},{},[159,164,169,174],{"type":33,"tag":104,"props":160,"children":161},{},[162],{"type":38,"value":163},"5",{"type":33,"tag":104,"props":165,"children":166},{},[167],{"type":38,"value":168},"Homepage",{"type":33,"tag":104,"props":170,"children":171},{},[172],{"type":38,"value":173},"25 %",{"type":33,"tag":104,"props":175,"children":176},{},[177],{"type":38,"value":178},"Bounce Rate, Session-Dauer",{"type":33,"tag":72,"props":180,"children":181},{},[182,187,192,197],{"type":33,"tag":104,"props":183,"children":184},{},[185],{"type":38,"value":186},"6",{"type":33,"tag":104,"props":188,"children":189},{},[190],{"type":38,"value":191},"Full Rollout",{"type":33,"tag":104,"props":193,"children":194},{},[195],{"type":38,"value":196},"100 %",{"type":33,"tag":104,"props":198,"children":199},{},[200],{"type":38,"value":201},"Revenue-Impact",{"type":33,"tag":34,"props":203,"children":204},{},[205],{"type":38,"value":206},"Mit diesem Ansatz bleibt der Rollback-Schaden minimal — statt 100 % rettet Ihr 95 % des Traffic.",{"type":33,"tag":34,"props":208,"children":209},{},[210,215],{"type":33,"tag":56,"props":211,"children":212},{},[213],{"type":38,"value":214},"Feature-Flag-Architektur:",{"type":38,"value":216}," Nutzen Sie LaunchDarkly, Statsig oder Unleash, um das neue Frontend hinter einem Feature Flag zu betreiben. Node.js-Beispiel (Unleash):",{"type":33,"tag":218,"props":219,"children":223},"pre",{"code":220,"language":221,"meta":16,"className":222,"style":16},"const unleash = require('unleash-client');\n\nunleash.on('ready', () => {\n  const isHeadlessEnabled = unleash.isEnabled('headless-pdp', {\n    userId: user.id,\n    sessionId: req.sessionID\n  });\n\n  if (isHeadlessEnabled) {\n    res.render('pdp-headless'); \u002F\u002F Next.js, Nuxt oder Remix\n  } else {\n    res.render('pdp-legacy'); \u002F\u002F Liquid, Blade etc.\n  }\n});\n","javascript","language-javascript shiki shiki-themes github-dark",[224],{"type":33,"tag":113,"props":225,"children":226},{"__ignoreMap":16},[227,273,283,321,363,372,381,390,398,411,445,463,493,502],{"type":33,"tag":228,"props":229,"children":232},"span",{"class":230,"line":231},"line",1,[233,239,245,250,256,262,268],{"type":33,"tag":228,"props":234,"children":236},{"style":235},"--shiki-default:#F97583",[237],{"type":38,"value":238},"const",{"type":33,"tag":228,"props":240,"children":242},{"style":241},"--shiki-default:#79B8FF",[243],{"type":38,"value":244}," unleash",{"type":33,"tag":228,"props":246,"children":247},{"style":235},[248],{"type":38,"value":249}," =",{"type":33,"tag":228,"props":251,"children":253},{"style":252},"--shiki-default:#B392F0",[254],{"type":38,"value":255}," require",{"type":33,"tag":228,"props":257,"children":259},{"style":258},"--shiki-default:#E1E4E8",[260],{"type":38,"value":261},"(",{"type":33,"tag":228,"props":263,"children":265},{"style":264},"--shiki-default:#9ECBFF",[266],{"type":38,"value":267},"'unleash-client'",{"type":33,"tag":228,"props":269,"children":270},{"style":258},[271],{"type":38,"value":272},");\n",{"type":33,"tag":228,"props":274,"children":276},{"class":230,"line":275},2,[277],{"type":33,"tag":228,"props":278,"children":280},{"emptyLinePlaceholder":279},true,[281],{"type":38,"value":282},"\n",{"type":33,"tag":228,"props":284,"children":286},{"class":230,"line":285},3,[287,292,297,301,306,311,316],{"type":33,"tag":228,"props":288,"children":289},{"style":258},[290],{"type":38,"value":291},"unleash.",{"type":33,"tag":228,"props":293,"children":294},{"style":252},[295],{"type":38,"value":296},"on",{"type":33,"tag":228,"props":298,"children":299},{"style":258},[300],{"type":38,"value":261},{"type":33,"tag":228,"props":302,"children":303},{"style":264},[304],{"type":38,"value":305},"'ready'",{"type":33,"tag":228,"props":307,"children":308},{"style":258},[309],{"type":38,"value":310},", () ",{"type":33,"tag":228,"props":312,"children":313},{"style":235},[314],{"type":38,"value":315},"=>",{"type":33,"tag":228,"props":317,"children":318},{"style":258},[319],{"type":38,"value":320}," {\n",{"type":33,"tag":228,"props":322,"children":324},{"class":230,"line":323},4,[325,330,335,339,344,349,353,358],{"type":33,"tag":228,"props":326,"children":327},{"style":235},[328],{"type":38,"value":329},"  const",{"type":33,"tag":228,"props":331,"children":332},{"style":241},[333],{"type":38,"value":334}," isHeadlessEnabled",{"type":33,"tag":228,"props":336,"children":337},{"style":235},[338],{"type":38,"value":249},{"type":33,"tag":228,"props":340,"children":341},{"style":258},[342],{"type":38,"value":343}," unleash.",{"type":33,"tag":228,"props":345,"children":346},{"style":252},[347],{"type":38,"value":348},"isEnabled",{"type":33,"tag":228,"props":350,"children":351},{"style":258},[352],{"type":38,"value":261},{"type":33,"tag":228,"props":354,"children":355},{"style":264},[356],{"type":38,"value":357},"'headless-pdp'",{"type":33,"tag":228,"props":359,"children":360},{"style":258},[361],{"type":38,"value":362},", {\n",{"type":33,"tag":228,"props":364,"children":366},{"class":230,"line":365},5,[367],{"type":33,"tag":228,"props":368,"children":369},{"style":258},[370],{"type":38,"value":371},"    userId: user.id,\n",{"type":33,"tag":228,"props":373,"children":375},{"class":230,"line":374},6,[376],{"type":33,"tag":228,"props":377,"children":378},{"style":258},[379],{"type":38,"value":380},"    sessionId: req.sessionID\n",{"type":33,"tag":228,"props":382,"children":384},{"class":230,"line":383},7,[385],{"type":33,"tag":228,"props":386,"children":387},{"style":258},[388],{"type":38,"value":389},"  });\n",{"type":33,"tag":228,"props":391,"children":393},{"class":230,"line":392},8,[394],{"type":33,"tag":228,"props":395,"children":396},{"emptyLinePlaceholder":279},[397],{"type":38,"value":282},{"type":33,"tag":228,"props":399,"children":400},{"class":230,"line":27},[401,406],{"type":33,"tag":228,"props":402,"children":403},{"style":235},[404],{"type":38,"value":405},"  if",{"type":33,"tag":228,"props":407,"children":408},{"style":258},[409],{"type":38,"value":410}," (isHeadlessEnabled) {\n",{"type":33,"tag":228,"props":412,"children":414},{"class":230,"line":413},10,[415,420,425,429,434,439],{"type":33,"tag":228,"props":416,"children":417},{"style":258},[418],{"type":38,"value":419},"    res.",{"type":33,"tag":228,"props":421,"children":422},{"style":252},[423],{"type":38,"value":424},"render",{"type":33,"tag":228,"props":426,"children":427},{"style":258},[428],{"type":38,"value":261},{"type":33,"tag":228,"props":430,"children":431},{"style":264},[432],{"type":38,"value":433},"'pdp-headless'",{"type":33,"tag":228,"props":435,"children":436},{"style":258},[437],{"type":38,"value":438},"); ",{"type":33,"tag":228,"props":440,"children":442},{"style":441},"--shiki-default:#6A737D",[443],{"type":38,"value":444},"\u002F\u002F Next.js, Nuxt oder Remix\n",{"type":33,"tag":228,"props":446,"children":448},{"class":230,"line":447},11,[449,454,459],{"type":33,"tag":228,"props":450,"children":451},{"style":258},[452],{"type":38,"value":453},"  } ",{"type":33,"tag":228,"props":455,"children":456},{"style":235},[457],{"type":38,"value":458},"else",{"type":33,"tag":228,"props":460,"children":461},{"style":258},[462],{"type":38,"value":320},{"type":33,"tag":228,"props":464,"children":466},{"class":230,"line":465},12,[467,471,475,479,484,488],{"type":33,"tag":228,"props":468,"children":469},{"style":258},[470],{"type":38,"value":419},{"type":33,"tag":228,"props":472,"children":473},{"style":252},[474],{"type":38,"value":424},{"type":33,"tag":228,"props":476,"children":477},{"style":258},[478],{"type":38,"value":261},{"type":33,"tag":228,"props":480,"children":481},{"style":264},[482],{"type":38,"value":483},"'pdp-legacy'",{"type":33,"tag":228,"props":485,"children":486},{"style":258},[487],{"type":38,"value":438},{"type":33,"tag":228,"props":489,"children":490},{"style":441},[491],{"type":38,"value":492},"\u002F\u002F Liquid, Blade etc.\n",{"type":33,"tag":228,"props":494,"children":496},{"class":230,"line":495},13,[497],{"type":33,"tag":228,"props":498,"children":499},{"style":258},[500],{"type":38,"value":501},"  }\n",{"type":33,"tag":228,"props":503,"children":505},{"class":230,"line":504},14,[506],{"type":33,"tag":228,"props":507,"children":508},{"style":258},[509],{"type":38,"value":510},"});\n",{"type":33,"tag":34,"props":512,"children":513},{},[514],{"type":38,"value":515},"Dieser Code ermöglicht benutzerspezifisches Frontend-Switching. A\u002FB-Test die alte vs. neue Experience in derselben Session und miss den Conversion-Delta in Echtzeit.",{"type":33,"tag":41,"props":517,"children":519},{"id":518},"seo-autorität-schützen-url-parität-und-redirect-disziplin",[520],{"type":38,"value":521},"SEO-Autorität schützen: URL-Parität und Redirect-Disziplin",{"type":33,"tag":34,"props":523,"children":524},{},[525],{"type":38,"value":526},"Die größte versteckte Migration-Kostenfalle ist SEO-Erosion. Ändert der neue Stack die URL-Struktur, verliert Google die für diese URL angesammelten Backlinks, das Crawl-Budget und historische Traffic-Daten.",{"type":33,"tag":34,"props":528,"children":529},{},[530,535],{"type":33,"tag":56,"props":531,"children":532},{},[533],{"type":38,"value":534},"URL-Parität ist Pflicht:",{"type":38,"value":536}," Alt- und Neusystem müssen die gleiche Slug-Struktur bewahren. Beim Wechsel von Shopify zu Hydrogen:",{"type":33,"tag":218,"props":538,"children":540},{"code":539},"Alt:  \u002Fproducts\u002Fmens-sneaker-white\nNeu:  \u002Fproducts\u002Fmens-sneaker-white\n",[541],{"type":33,"tag":113,"props":542,"children":543},{"__ignoreMap":16},[544],{"type":38,"value":539},{"type":33,"tag":34,"props":546,"children":547},{},[548],{"type":38,"value":549},"Auch wenn die Slug-Generierung sich ändert — der Output muss gleich sein. So stellen Sie URL-Parität sicher:",{"type":33,"tag":551,"props":552,"children":553},"ol",{},[554,560,565],{"type":33,"tag":555,"props":556,"children":557},"li",{},[558],{"type":38,"value":559},"Dumpfen Sie alle URLs aus dem alten System (CSV mit 30-Tage-Traffic-Daten)",{"type":33,"tag":555,"props":561,"children":562},{},[563],{"type":38,"value":564},"Testen Sie die gleichen URLs im neuen System mit Canary-Routing",{"type":33,"tag":555,"props":566,"children":567},{},[568],{"type":38,"value":569},"Sichern Sie Null-Differenz — selbst eine unterschiedliche URL ist SEO-Rückgang",{"type":33,"tag":34,"props":571,"children":572},{},[573,578],{"type":33,"tag":56,"props":574,"children":575},{},[576],{"type":38,"value":577},"301 vs. 302 Trade-off:",{"type":38,"value":579}," Temporäre Redirects (302) signalisieren Google \"diese URL ist vorübergehend woanders\", permanente (301) bedeuten \"diese URL ist jetzt hier\". Während der Phasierung Ihr nutzer 302 — beim vollständigen Rollout wechseln Sie zu 301. Nutzen Sie 302 aber nicht länger als 4 Wochen; Google kann es später auch als permanent interpretieren (John Mueller, 2024).",{"type":33,"tag":34,"props":581,"children":582},{},[583,588,590,596],{"type":33,"tag":56,"props":584,"children":585},{},[586],{"type":38,"value":587},"Canonical-Tag-Disziplin:",{"type":38,"value":589}," Wenn das neue Frontend Server-Side Rendering nutzt, richten Sie ",{"type":33,"tag":113,"props":591,"children":593},{"className":592},[],[594],{"type":38,"value":595},"\u003Clink rel=\"canonical\">",{"type":38,"value":597}," so ein, dass es auf die alte URL verweist. Das signalisiert Google \"die echte Autorität ist noch die alte Domain\". Beispiel Next.js:",{"type":33,"tag":218,"props":599,"children":603},{"code":600,"language":601,"meta":16,"className":602,"style":16},"\u002F\u002F pages\u002Fproducts\u002F[slug].jsx\nexport async function generateMetadata({ params }) {\n  return {\n    alternates: {\n      canonical: `https:\u002F\u002Flegacy.site.com\u002Fproducts\u002F${params.slug}`\n    }\n  };\n}\n","jsx","language-jsx shiki shiki-themes github-dark",[604],{"type":33,"tag":113,"props":605,"children":606},{"__ignoreMap":16},[607,615,654,666,674,706,714,722],{"type":33,"tag":228,"props":608,"children":609},{"class":230,"line":231},[610],{"type":33,"tag":228,"props":611,"children":612},{"style":441},[613],{"type":38,"value":614},"\u002F\u002F pages\u002Fproducts\u002F[slug].jsx\n",{"type":33,"tag":228,"props":616,"children":617},{"class":230,"line":275},[618,623,628,633,638,643,649],{"type":33,"tag":228,"props":619,"children":620},{"style":235},[621],{"type":38,"value":622},"export",{"type":33,"tag":228,"props":624,"children":625},{"style":235},[626],{"type":38,"value":627}," async",{"type":33,"tag":228,"props":629,"children":630},{"style":235},[631],{"type":38,"value":632}," function",{"type":33,"tag":228,"props":634,"children":635},{"style":252},[636],{"type":38,"value":637}," generateMetadata",{"type":33,"tag":228,"props":639,"children":640},{"style":258},[641],{"type":38,"value":642},"({ ",{"type":33,"tag":228,"props":644,"children":646},{"style":645},"--shiki-default:#FFAB70",[647],{"type":38,"value":648},"params",{"type":33,"tag":228,"props":650,"children":651},{"style":258},[652],{"type":38,"value":653}," }) {\n",{"type":33,"tag":228,"props":655,"children":656},{"class":230,"line":285},[657,662],{"type":33,"tag":228,"props":658,"children":659},{"style":235},[660],{"type":38,"value":661},"  return",{"type":33,"tag":228,"props":663,"children":664},{"style":258},[665],{"type":38,"value":320},{"type":33,"tag":228,"props":667,"children":668},{"class":230,"line":323},[669],{"type":33,"tag":228,"props":670,"children":671},{"style":258},[672],{"type":38,"value":673},"    alternates: {\n",{"type":33,"tag":228,"props":675,"children":676},{"class":230,"line":365},[677,682,687,691,696,701],{"type":33,"tag":228,"props":678,"children":679},{"style":258},[680],{"type":38,"value":681},"      canonical: ",{"type":33,"tag":228,"props":683,"children":684},{"style":264},[685],{"type":38,"value":686},"`https:\u002F\u002Flegacy.site.com\u002Fproducts\u002F${",{"type":33,"tag":228,"props":688,"children":689},{"style":258},[690],{"type":38,"value":648},{"type":33,"tag":228,"props":692,"children":693},{"style":264},[694],{"type":38,"value":695},".",{"type":33,"tag":228,"props":697,"children":698},{"style":258},[699],{"type":38,"value":700},"slug",{"type":33,"tag":228,"props":702,"children":703},{"style":264},[704],{"type":38,"value":705},"}`\n",{"type":33,"tag":228,"props":707,"children":708},{"class":230,"line":374},[709],{"type":33,"tag":228,"props":710,"children":711},{"style":258},[712],{"type":38,"value":713},"    }\n",{"type":33,"tag":228,"props":715,"children":716},{"class":230,"line":383},[717],{"type":33,"tag":228,"props":718,"children":719},{"style":258},[720],{"type":38,"value":721},"  };\n",{"type":33,"tag":228,"props":723,"children":724},{"class":230,"line":392},[725],{"type":33,"tag":228,"props":726,"children":727},{"style":258},[728],{"type":38,"value":729},"}\n",{"type":33,"tag":34,"props":731,"children":732},{},[733],{"type":38,"value":734},"Beim vollständigen Rollout entfernen Sie diesen Tag und lassen die neue Domain zur Authorität werden.",{"type":33,"tag":41,"props":736,"children":738},{"id":737},"add-to-cart-abandon-analyse-versteckte-reibungspunkte-aufdecken",[739],{"type":38,"value":740},"Add-to-Cart-Abandon-Analyse: Versteckte Reibungspunkte aufdecken",{"type":33,"tag":34,"props":742,"children":743},{},[744],{"type":38,"value":745},"Bei Headless-Migrationen sinkt die Conversion Rate oft nicht beim Checkout, sondern schon vorher. Braucht der Nutzer im alten System 3 Klicks zum Warenkorb, reichen im neuen System 4 Klicks oder 1 Sekunde extra Load-Zeit, um einen Abandonment auszulösen.",{"type":33,"tag":34,"props":747,"children":748},{},[749],{"type":33,"tag":56,"props":750,"children":751},{},[752],{"type":38,"value":753},"Kritische Metriken:",{"type":33,"tag":755,"props":756,"children":757},"ul",{},[758,768,778],{"type":33,"tag":555,"props":759,"children":760},{},[761,766],{"type":33,"tag":56,"props":762,"children":763},{},[764],{"type":38,"value":765},"ATC-Rate:",{"type":38,"value":767}," Produktseiten-Views \u002F Warenkorb-Hinzufügungen",{"type":33,"tag":555,"props":769,"children":770},{},[771,776],{"type":33,"tag":56,"props":772,"children":773},{},[774],{"type":38,"value":775},"Click-to-ATC Latency:",{"type":38,"value":777}," Zeit zwischen Button-Klick und Bestätigung (Ziel \u003C600ms)",{"type":33,"tag":555,"props":779,"children":780},{},[781,786],{"type":33,"tag":56,"props":782,"children":783},{},[784],{"type":38,"value":785},"Exit Rate auf PDP:",{"type":38,"value":787}," Abgänge vor dem Warenkorb-Hinzufügen (neu >12 % = Alarm)",{"type":33,"tag":34,"props":789,"children":790},{},[791],{"type":38,"value":792},"Sammeln Sie diese Metriken parallel auf beiden Systemen. BigQuery + GA4:",{"type":33,"tag":218,"props":794,"children":798},{"code":795,"language":796,"meta":16,"className":797,"style":16},"SELECT\n  page_location,\n  event_name,\n  COUNTIF(event_name = 'add_to_cart') \u002F COUNT(*) AS atc_rate,\n  AVG(TIMESTAMP_DIFF(atc_timestamp, page_view_timestamp, MILLISECOND)) AS click_latency_ms\nFROM `project.dataset.events_*`\nWHERE _TABLE_SUFFIX BETWEEN '20260701' AND '20260731'\n  AND event_name IN ('page_view', 'add_to_cart')\nGROUP BY page_location\nHAVING atc_rate \u003C 0.08 -- unter 8 % = kritisch\nORDER BY click_latency_ms DESC;\n","sql","language-sql shiki shiki-themes github-dark",[799],{"type":33,"tag":113,"props":800,"children":801},{"__ignoreMap":16},[802,810,818,826,882,914,927,960,1003,1016,1053],{"type":33,"tag":228,"props":803,"children":804},{"class":230,"line":231},[805],{"type":33,"tag":228,"props":806,"children":807},{"style":235},[808],{"type":38,"value":809},"SELECT\n",{"type":33,"tag":228,"props":811,"children":812},{"class":230,"line":275},[813],{"type":33,"tag":228,"props":814,"children":815},{"style":258},[816],{"type":38,"value":817},"  page_location,\n",{"type":33,"tag":228,"props":819,"children":820},{"class":230,"line":285},[821],{"type":33,"tag":228,"props":822,"children":823},{"style":258},[824],{"type":38,"value":825},"  event_name,\n",{"type":33,"tag":228,"props":827,"children":828},{"class":230,"line":323},[829,834,839,844,849,854,859,863,868,872,877],{"type":33,"tag":228,"props":830,"children":831},{"style":258},[832],{"type":38,"value":833},"  COUNTIF(event_name ",{"type":33,"tag":228,"props":835,"children":836},{"style":235},[837],{"type":38,"value":838},"=",{"type":33,"tag":228,"props":840,"children":841},{"style":264},[842],{"type":38,"value":843}," 'add_to_cart'",{"type":33,"tag":228,"props":845,"children":846},{"style":258},[847],{"type":38,"value":848},") ",{"type":33,"tag":228,"props":850,"children":851},{"style":235},[852],{"type":38,"value":853},"\u002F",{"type":33,"tag":228,"props":855,"children":856},{"style":241},[857],{"type":38,"value":858}," COUNT",{"type":33,"tag":228,"props":860,"children":861},{"style":258},[862],{"type":38,"value":261},{"type":33,"tag":228,"props":864,"children":865},{"style":235},[866],{"type":38,"value":867},"*",{"type":33,"tag":228,"props":869,"children":870},{"style":258},[871],{"type":38,"value":848},{"type":33,"tag":228,"props":873,"children":874},{"style":235},[875],{"type":38,"value":876},"AS",{"type":33,"tag":228,"props":878,"children":879},{"style":258},[880],{"type":38,"value":881}," atc_rate,\n",{"type":33,"tag":228,"props":883,"children":884},{"class":230,"line":365},[885,890,895,900,905,909],{"type":33,"tag":228,"props":886,"children":887},{"style":241},[888],{"type":38,"value":889},"  AVG",{"type":33,"tag":228,"props":891,"children":892},{"style":258},[893],{"type":38,"value":894},"(TIMESTAMP_DIFF(atc_timestamp, page_view_timestamp, ",{"type":33,"tag":228,"props":896,"children":897},{"style":235},[898],{"type":38,"value":899},"MILLISECOND",{"type":33,"tag":228,"props":901,"children":902},{"style":258},[903],{"type":38,"value":904},")) ",{"type":33,"tag":228,"props":906,"children":907},{"style":235},[908],{"type":38,"value":876},{"type":33,"tag":228,"props":910,"children":911},{"style":258},[912],{"type":38,"value":913}," click_latency_ms\n",{"type":33,"tag":228,"props":915,"children":916},{"class":230,"line":374},[917,922],{"type":33,"tag":228,"props":918,"children":919},{"style":235},[920],{"type":38,"value":921},"FROM",{"type":33,"tag":228,"props":923,"children":924},{"style":264},[925],{"type":38,"value":926}," `project.dataset.events_*`\n",{"type":33,"tag":228,"props":928,"children":929},{"class":230,"line":383},[930,935,940,945,950,955],{"type":33,"tag":228,"props":931,"children":932},{"style":235},[933],{"type":38,"value":934},"WHERE",{"type":33,"tag":228,"props":936,"children":937},{"style":258},[938],{"type":38,"value":939}," _TABLE_SUFFIX ",{"type":33,"tag":228,"props":941,"children":942},{"style":235},[943],{"type":38,"value":944},"BETWEEN",{"type":33,"tag":228,"props":946,"children":947},{"style":264},[948],{"type":38,"value":949}," '20260701'",{"type":33,"tag":228,"props":951,"children":952},{"style":235},[953],{"type":38,"value":954}," AND",{"type":33,"tag":228,"props":956,"children":957},{"style":264},[958],{"type":38,"value":959}," '20260731'\n",{"type":33,"tag":228,"props":961,"children":962},{"class":230,"line":392},[963,968,973,978,983,988,993,998],{"type":33,"tag":228,"props":964,"children":965},{"style":235},[966],{"type":38,"value":967},"  AND",{"type":33,"tag":228,"props":969,"children":970},{"style":258},[971],{"type":38,"value":972}," event_name ",{"type":33,"tag":228,"props":974,"children":975},{"style":235},[976],{"type":38,"value":977},"IN",{"type":33,"tag":228,"props":979,"children":980},{"style":258},[981],{"type":38,"value":982}," (",{"type":33,"tag":228,"props":984,"children":985},{"style":264},[986],{"type":38,"value":987},"'page_view'",{"type":33,"tag":228,"props":989,"children":990},{"style":258},[991],{"type":38,"value":992},", ",{"type":33,"tag":228,"props":994,"children":995},{"style":264},[996],{"type":38,"value":997},"'add_to_cart'",{"type":33,"tag":228,"props":999,"children":1000},{"style":258},[1001],{"type":38,"value":1002},")\n",{"type":33,"tag":228,"props":1004,"children":1005},{"class":230,"line":27},[1006,1011],{"type":33,"tag":228,"props":1007,"children":1008},{"style":235},[1009],{"type":38,"value":1010},"GROUP BY",{"type":33,"tag":228,"props":1012,"children":1013},{"style":258},[1014],{"type":38,"value":1015}," page_location\n",{"type":33,"tag":228,"props":1017,"children":1018},{"class":230,"line":413},[1019,1024,1029,1034,1039,1043,1048],{"type":33,"tag":228,"props":1020,"children":1021},{"style":235},[1022],{"type":38,"value":1023},"HAVING",{"type":33,"tag":228,"props":1025,"children":1026},{"style":258},[1027],{"type":38,"value":1028}," atc_rate ",{"type":33,"tag":228,"props":1030,"children":1031},{"style":235},[1032],{"type":38,"value":1033},"\u003C",{"type":33,"tag":228,"props":1035,"children":1036},{"style":241},[1037],{"type":38,"value":1038}," 0",{"type":33,"tag":228,"props":1040,"children":1041},{"style":258},[1042],{"type":38,"value":695},{"type":33,"tag":228,"props":1044,"children":1045},{"style":241},[1046],{"type":38,"value":1047},"08",{"type":33,"tag":228,"props":1049,"children":1050},{"style":441},[1051],{"type":38,"value":1052}," -- unter 8 % = kritisch\n",{"type":33,"tag":228,"props":1054,"children":1055},{"class":230,"line":447},[1056,1061,1066,1071],{"type":33,"tag":228,"props":1057,"children":1058},{"style":235},[1059],{"type":38,"value":1060},"ORDER BY",{"type":33,"tag":228,"props":1062,"children":1063},{"style":258},[1064],{"type":38,"value":1065}," click_latency_ms ",{"type":33,"tag":228,"props":1067,"children":1068},{"style":235},[1069],{"type":38,"value":1070},"DESC",{"type":33,"tag":228,"props":1072,"children":1073},{"style":258},[1074],{"type":38,"value":1075},";\n",{"type":33,"tag":34,"props":1077,"children":1078},{},[1079],{"type":38,"value":1080},"Diese Query zeigt, in welchen Produktkategorien die ATC-Rate sinkt und Latency steigt. Wenn \"weiße Schuhe\" im neuen Frontend 1200ms Latency zeigt, untersuchen Sie Bundle-Größe oder API-Overhead.",{"type":33,"tag":34,"props":1082,"children":1083},{},[1084,1089],{"type":33,"tag":56,"props":1085,"children":1086},{},[1087],{"type":38,"value":1088},"Session Replay Trade-off:",{"type":38,"value":1090}," Tools wie Hotjar und LogRocket zeichnen jeden Pixel auf, tragen aber Datenschutzrisiken. Alternative: FullStory's \"Frustration Signals\" API — erfasst nur schnelle Klicks, Fehlermeldungen, leere-Bereich-Klicks, nicht die ganze Session.",{"type":33,"tag":41,"props":1092,"children":1094},{"id":1093},"rollback-strategie-in-composable-architektur",[1095],{"type":38,"value":1096},"Rollback-Strategie in Composable-Architektur",{"type":33,"tag":34,"props":1098,"children":1099},{},[1100],{"type":38,"value":1101},"Headless-Stacks bestehen aus mehreren Komponenten: Frontend (Next.js, Nuxt), CMS (Contentful, Sanity), Commerce Engine (Shopify, commercetools), Search (Algolia, Typesense). Wenn eine Komponente ausfällt, braucht Ihr einen klaren Rollback-Plan.",{"type":33,"tag":34,"props":1103,"children":1104},{},[1105,1110],{"type":33,"tag":56,"props":1106,"children":1107},{},[1108],{"type":38,"value":1109},"Circuit Breaker Pattern:",{"type":38,"value":1111}," Setzen Sie Timeout + Retry-Limits für jeden Third-Party-Service. Beispiel für Shopify Storefront API:",{"type":33,"tag":218,"props":1113,"children":1115},{"code":1114,"language":221,"meta":16,"className":222,"style":16},"const fetchProduct = async (handle) => {\n  const controller = new AbortController();\n  const timeout = setTimeout(() => controller.abort(), 3000); \u002F\u002F 3s Timeout\n\n  try {\n    const response = await fetch(`https:\u002F\u002Fshop.myshopify.com\u002Fapi\u002F2024-01\u002Fgraphql.json`, {\n      method: 'POST',\n      headers: { 'X-Shopify-Storefront-Access-Token': token },\n      body: JSON.stringify({ query: productQuery, variables: { handle } }),\n      signal: controller.signal\n    });\n    clearTimeout(timeout);\n    return response.json();\n  } catch (err) {\n    if (err.name === 'AbortError') {\n      \u002F\u002F Timeout: fallback auf gecachte Daten oder Legacy-API\n      return fetchFromLegacySystem(handle);\n    }\n    throw err;\n  }\n};\n",[1116],{"type":33,"tag":113,"props":1117,"children":1118},{"__ignoreMap":16},[1119,1160,1191,1250,1257,1269,1309,1327,1345,1372,1380,1388,1401,1423,1440,1469,1478,1497,1505,1519,1527],{"type":33,"tag":228,"props":1120,"children":1121},{"class":230,"line":231},[1122,1126,1131,1135,1139,1143,1148,1152,1156],{"type":33,"tag":228,"props":1123,"children":1124},{"style":235},[1125],{"type":38,"value":238},{"type":33,"tag":228,"props":1127,"children":1128},{"style":252},[1129],{"type":38,"value":1130}," fetchProduct",{"type":33,"tag":228,"props":1132,"children":1133},{"style":235},[1134],{"type":38,"value":249},{"type":33,"tag":228,"props":1136,"children":1137},{"style":235},[1138],{"type":38,"value":627},{"type":33,"tag":228,"props":1140,"children":1141},{"style":258},[1142],{"type":38,"value":982},{"type":33,"tag":228,"props":1144,"children":1145},{"style":645},[1146],{"type":38,"value":1147},"handle",{"type":33,"tag":228,"props":1149,"children":1150},{"style":258},[1151],{"type":38,"value":848},{"type":33,"tag":228,"props":1153,"children":1154},{"style":235},[1155],{"type":38,"value":315},{"type":33,"tag":228,"props":1157,"children":1158},{"style":258},[1159],{"type":38,"value":320},{"type":33,"tag":228,"props":1161,"children":1162},{"class":230,"line":275},[1163,1167,1172,1176,1181,1186],{"type":33,"tag":228,"props":1164,"children":1165},{"style":235},[1166],{"type":38,"value":329},{"type":33,"tag":228,"props":1168,"children":1169},{"style":241},[1170],{"type":38,"value":1171}," controller",{"type":33,"tag":228,"props":1173,"children":1174},{"style":235},[1175],{"type":38,"value":249},{"type":33,"tag":228,"props":1177,"children":1178},{"style":235},[1179],{"type":38,"value":1180}," new",{"type":33,"tag":228,"props":1182,"children":1183},{"style":252},[1184],{"type":38,"value":1185}," AbortController",{"type":33,"tag":228,"props":1187,"children":1188},{"style":258},[1189],{"type":38,"value":1190},"();\n",{"type":33,"tag":228,"props":1192,"children":1193},{"class":230,"line":285},[1194,1198,1203,1207,1212,1217,1221,1226,1231,1236,1241,1245],{"type":33,"tag":228,"props":1195,"children":1196},{"style":235},[1197],{"type":38,"value":329},{"type":33,"tag":228,"props":1199,"children":1200},{"style":241},[1201],{"type":38,"value":1202}," timeout",{"type":33,"tag":228,"props":1204,"children":1205},{"style":235},[1206],{"type":38,"value":249},{"type":33,"tag":228,"props":1208,"children":1209},{"style":252},[1210],{"type":38,"value":1211}," setTimeout",{"type":33,"tag":228,"props":1213,"children":1214},{"style":258},[1215],{"type":38,"value":1216},"(() ",{"type":33,"tag":228,"props":1218,"children":1219},{"style":235},[1220],{"type":38,"value":315},{"type":33,"tag":228,"props":1222,"children":1223},{"style":258},[1224],{"type":38,"value":1225}," controller.",{"type":33,"tag":228,"props":1227,"children":1228},{"style":252},[1229],{"type":38,"value":1230},"abort",{"type":33,"tag":228,"props":1232,"children":1233},{"style":258},[1234],{"type":38,"value":1235},"(), ",{"type":33,"tag":228,"props":1237,"children":1238},{"style":241},[1239],{"type":38,"value":1240},"3000",{"type":33,"tag":228,"props":1242,"children":1243},{"style":258},[1244],{"type":38,"value":438},{"type":33,"tag":228,"props":1246,"children":1247},{"style":441},[1248],{"type":38,"value":1249},"\u002F\u002F 3s Timeout\n",{"type":33,"tag":228,"props":1251,"children":1252},{"class":230,"line":323},[1253],{"type":33,"tag":228,"props":1254,"children":1255},{"emptyLinePlaceholder":279},[1256],{"type":38,"value":282},{"type":33,"tag":228,"props":1258,"children":1259},{"class":230,"line":365},[1260,1265],{"type":33,"tag":228,"props":1261,"children":1262},{"style":235},[1263],{"type":38,"value":1264},"  try",{"type":33,"tag":228,"props":1266,"children":1267},{"style":258},[1268],{"type":38,"value":320},{"type":33,"tag":228,"props":1270,"children":1271},{"class":230,"line":374},[1272,1277,1282,1286,1291,1296,1300,1305],{"type":33,"tag":228,"props":1273,"children":1274},{"style":235},[1275],{"type":38,"value":1276},"    const",{"type":33,"tag":228,"props":1278,"children":1279},{"style":241},[1280],{"type":38,"value":1281}," response",{"type":33,"tag":228,"props":1283,"children":1284},{"style":235},[1285],{"type":38,"value":249},{"type":33,"tag":228,"props":1287,"children":1288},{"style":235},[1289],{"type":38,"value":1290}," await",{"type":33,"tag":228,"props":1292,"children":1293},{"style":252},[1294],{"type":38,"value":1295}," fetch",{"type":33,"tag":228,"props":1297,"children":1298},{"style":258},[1299],{"type":38,"value":261},{"type":33,"tag":228,"props":1301,"children":1302},{"style":264},[1303],{"type":38,"value":1304},"`https:\u002F\u002Fshop.myshopify.com\u002Fapi\u002F2024-01\u002Fgraphql.json`",{"type":33,"tag":228,"props":1306,"children":1307},{"style":258},[1308],{"type":38,"value":362},{"type":33,"tag":228,"props":1310,"children":1311},{"class":230,"line":383},[1312,1317,1322],{"type":33,"tag":228,"props":1313,"children":1314},{"style":258},[1315],{"type":38,"value":1316},"      method: ",{"type":33,"tag":228,"props":1318,"children":1319},{"style":264},[1320],{"type":38,"value":1321},"'POST'",{"type":33,"tag":228,"props":1323,"children":1324},{"style":258},[1325],{"type":38,"value":1326},",\n",{"type":33,"tag":228,"props":1328,"children":1329},{"class":230,"line":392},[1330,1335,1340],{"type":33,"tag":228,"props":1331,"children":1332},{"style":258},[1333],{"type":38,"value":1334},"      headers: { ",{"type":33,"tag":228,"props":1336,"children":1337},{"style":264},[1338],{"type":38,"value":1339},"'X-Shopify-Storefront-Access-Token'",{"type":33,"tag":228,"props":1341,"children":1342},{"style":258},[1343],{"type":38,"value":1344},": token },\n",{"type":33,"tag":228,"props":1346,"children":1347},{"class":230,"line":27},[1348,1353,1358,1362,1367],{"type":33,"tag":228,"props":1349,"children":1350},{"style":258},[1351],{"type":38,"value":1352},"      body: ",{"type":33,"tag":228,"props":1354,"children":1355},{"style":241},[1356],{"type":38,"value":1357},"JSON",{"type":33,"tag":228,"props":1359,"children":1360},{"style":258},[1361],{"type":38,"value":695},{"type":33,"tag":228,"props":1363,"children":1364},{"style":252},[1365],{"type":38,"value":1366},"stringify",{"type":33,"tag":228,"props":1368,"children":1369},{"style":258},[1370],{"type":38,"value":1371},"({ query: productQuery, variables: { handle } }),\n",{"type":33,"tag":228,"props":1373,"children":1374},{"class":230,"line":413},[1375],{"type":33,"tag":228,"props":1376,"children":1377},{"style":258},[1378],{"type":38,"value":1379},"      signal: controller.signal\n",{"type":33,"tag":228,"props":1381,"children":1382},{"class":230,"line":447},[1383],{"type":33,"tag":228,"props":1384,"children":1385},{"style":258},[1386],{"type":38,"value":1387},"    });\n",{"type":33,"tag":228,"props":1389,"children":1390},{"class":230,"line":465},[1391,1396],{"type":33,"tag":228,"props":1392,"children":1393},{"style":252},[1394],{"type":38,"value":1395},"    clearTimeout",{"type":33,"tag":228,"props":1397,"children":1398},{"style":258},[1399],{"type":38,"value":1400},"(timeout);\n",{"type":33,"tag":228,"props":1402,"children":1403},{"class":230,"line":495},[1404,1409,1414,1419],{"type":33,"tag":228,"props":1405,"children":1406},{"style":235},[1407],{"type":38,"value":1408},"    return",{"type":33,"tag":228,"props":1410,"children":1411},{"style":258},[1412],{"type":38,"value":1413}," response.",{"type":33,"tag":228,"props":1415,"children":1416},{"style":252},[1417],{"type":38,"value":1418},"json",{"type":33,"tag":228,"props":1420,"children":1421},{"style":258},[1422],{"type":38,"value":1190},{"type":33,"tag":228,"props":1424,"children":1425},{"class":230,"line":504},[1426,1430,1435],{"type":33,"tag":228,"props":1427,"children":1428},{"style":258},[1429],{"type":38,"value":453},{"type":33,"tag":228,"props":1431,"children":1432},{"style":235},[1433],{"type":38,"value":1434},"catch",{"type":33,"tag":228,"props":1436,"children":1437},{"style":258},[1438],{"type":38,"value":1439}," (err) {\n",{"type":33,"tag":228,"props":1441,"children":1443},{"class":230,"line":1442},15,[1444,1449,1454,1459,1464],{"type":33,"tag":228,"props":1445,"children":1446},{"style":235},[1447],{"type":38,"value":1448},"    if",{"type":33,"tag":228,"props":1450,"children":1451},{"style":258},[1452],{"type":38,"value":1453}," (err.name ",{"type":33,"tag":228,"props":1455,"children":1456},{"style":235},[1457],{"type":38,"value":1458},"===",{"type":33,"tag":228,"props":1460,"children":1461},{"style":264},[1462],{"type":38,"value":1463}," 'AbortError'",{"type":33,"tag":228,"props":1465,"children":1466},{"style":258},[1467],{"type":38,"value":1468},") {\n",{"type":33,"tag":228,"props":1470,"children":1472},{"class":230,"line":1471},16,[1473],{"type":33,"tag":228,"props":1474,"children":1475},{"style":441},[1476],{"type":38,"value":1477},"      \u002F\u002F Timeout: fallback auf gecachte Daten oder Legacy-API\n",{"type":33,"tag":228,"props":1479,"children":1481},{"class":230,"line":1480},17,[1482,1487,1492],{"type":33,"tag":228,"props":1483,"children":1484},{"style":235},[1485],{"type":38,"value":1486},"      return",{"type":33,"tag":228,"props":1488,"children":1489},{"style":252},[1490],{"type":38,"value":1491}," fetchFromLegacySystem",{"type":33,"tag":228,"props":1493,"children":1494},{"style":258},[1495],{"type":38,"value":1496},"(handle);\n",{"type":33,"tag":228,"props":1498,"children":1500},{"class":230,"line":1499},18,[1501],{"type":33,"tag":228,"props":1502,"children":1503},{"style":258},[1504],{"type":38,"value":713},{"type":33,"tag":228,"props":1506,"children":1508},{"class":230,"line":1507},19,[1509,1514],{"type":33,"tag":228,"props":1510,"children":1511},{"style":235},[1512],{"type":38,"value":1513},"    throw",{"type":33,"tag":228,"props":1515,"children":1516},{"style":258},[1517],{"type":38,"value":1518}," err;\n",{"type":33,"tag":228,"props":1520,"children":1522},{"class":230,"line":1521},20,[1523],{"type":33,"tag":228,"props":1524,"children":1525},{"style":258},[1526],{"type":38,"value":501},{"type":33,"tag":228,"props":1528,"children":1530},{"class":230,"line":1529},21,[1531],{"type":33,"tag":228,"props":1532,"children":1533},{"style":258},[1534],{"type":38,"value":1535},"};\n",{"type":33,"tag":34,"props":1537,"children":1538},{},[1539],{"type":38,"value":1540},"Antwortet die Shopify API nicht in 3 Sekunden, fällt der Code auf das alte System zurück. Das Nutzererlebnis bleibt ununterbro­chen.",{"type":33,"tag":34,"props":1542,"children":1543},{},[1544,1549],{"type":33,"tag":56,"props":1545,"children":1546},{},[1547],{"type":38,"value":1548},"Automatisierter Rollback-Trigger:",{"type":38,"value":1550}," Prometheus + Alertmanager lösen automatisch Rollback aus, wenn Error-Rate >2 %:",{"type":33,"tag":218,"props":1552,"children":1556},{"code":1553,"language":1554,"meta":16,"className":1555,"style":16},"groups:\n  - name: headless_alerts\n    rules:\n      - alert: HighErrorRate\n        expr: rate(http_requests_total{job=\"headless-frontend\",status=~\"5..\"}[5m]) > 0.02\n        for: 2m\n        actions:\n          - trigger_rollback: true\n            target_version: \"legacy-stable\"\n","yaml","language-yaml shiki shiki-themes github-dark",[1557],{"type":33,"tag":113,"props":1558,"children":1559},{"__ignoreMap":16},[1560,1574,1597,1609,1631,1648,1665,1677,1699],{"type":33,"tag":228,"props":1561,"children":1562},{"class":230,"line":231},[1563,1569],{"type":33,"tag":228,"props":1564,"children":1566},{"style":1565},"--shiki-default:#85E89D",[1567],{"type":38,"value":1568},"groups",{"type":33,"tag":228,"props":1570,"children":1571},{"style":258},[1572],{"type":38,"value":1573},":\n",{"type":33,"tag":228,"props":1575,"children":1576},{"class":230,"line":275},[1577,1582,1587,1592],{"type":33,"tag":228,"props":1578,"children":1579},{"style":258},[1580],{"type":38,"value":1581},"  - ",{"type":33,"tag":228,"props":1583,"children":1584},{"style":1565},[1585],{"type":38,"value":1586},"name",{"type":33,"tag":228,"props":1588,"children":1589},{"style":258},[1590],{"type":38,"value":1591},": ",{"type":33,"tag":228,"props":1593,"children":1594},{"style":264},[1595],{"type":38,"value":1596},"headless_alerts\n",{"type":33,"tag":228,"props":1598,"children":1599},{"class":230,"line":285},[1600,1605],{"type":33,"tag":228,"props":1601,"children":1602},{"style":1565},[1603],{"type":38,"value":1604},"    rules",{"type":33,"tag":228,"props":1606,"children":1607},{"style":258},[1608],{"type":38,"value":1573},{"type":33,"tag":228,"props":1610,"children":1611},{"class":230,"line":323},[1612,1617,1622,1626],{"type":33,"tag":228,"props":1613,"children":1614},{"style":258},[1615],{"type":38,"value":1616},"      - ",{"type":33,"tag":228,"props":1618,"children":1619},{"style":1565},[1620],{"type":38,"value":1621},"alert",{"type":33,"tag":228,"props":1623,"children":1624},{"style":258},[1625],{"type":38,"value":1591},{"type":33,"tag":228,"props":1627,"children":1628},{"style":264},[1629],{"type":38,"value":1630},"HighErrorRate\n",{"type":33,"tag":228,"props":1632,"children":1633},{"class":230,"line":365},[1634,1639,1643],{"type":33,"tag":228,"props":1635,"children":1636},{"style":1565},[1637],{"type":38,"value":1638},"        expr",{"type":33,"tag":228,"props":1640,"children":1641},{"style":258},[1642],{"type":38,"value":1591},{"type":33,"tag":228,"props":1644,"children":1645},{"style":264},[1646],{"type":38,"value":1647},"rate(http_requests_total{job=\"headless-frontend\",status=~\"5..\"}[5m]) > 0.02\n",{"type":33,"tag":228,"props":1649,"children":1650},{"class":230,"line":374},[1651,1656,1660],{"type":33,"tag":228,"props":1652,"children":1653},{"style":1565},[1654],{"type":38,"value":1655},"        for",{"type":33,"tag":228,"props":1657,"children":1658},{"style":258},[1659],{"type":38,"value":1591},{"type":33,"tag":228,"props":1661,"children":1662},{"style":264},[1663],{"type":38,"value":1664},"2m\n",{"type":33,"tag":228,"props":1666,"children":1667},{"class":230,"line":383},[1668,1673],{"type":33,"tag":228,"props":1669,"children":1670},{"style":1565},[1671],{"type":38,"value":1672},"        actions",{"type":33,"tag":228,"props":1674,"children":1675},{"style":258},[1676],{"type":38,"value":1573},{"type":33,"tag":228,"props":1678,"children":1679},{"class":230,"line":392},[1680,1685,1690,1694],{"type":33,"tag":228,"props":1681,"children":1682},{"style":258},[1683],{"type":38,"value":1684},"          - ",{"type":33,"tag":228,"props":1686,"children":1687},{"style":1565},[1688],{"type":38,"value":1689},"trigger_rollback",{"type":33,"tag":228,"props":1691,"children":1692},{"style":258},[1693],{"type":38,"value":1591},{"type":33,"tag":228,"props":1695,"children":1696},{"style":241},[1697],{"type":38,"value":1698},"true\n",{"type":33,"tag":228,"props":1700,"children":1701},{"class":230,"line":27},[1702,1707,1711],{"type":33,"tag":228,"props":1703,"children":1704},{"style":1565},[1705],{"type":38,"value":1706},"            target_version",{"type":33,"tag":228,"props":1708,"children":1709},{"style":258},[1710],{"type":38,"value":1591},{"type":33,"tag":228,"props":1712,"children":1713},{"style":264},[1714],{"type":38,"value":1715},"\"legacy-stable\"\n",{"type":33,"tag":34,"props":1717,"children":1718},{},[1719],{"type":38,"value":1720},"Diese Config fährt das Feature Flag herunter und lenkt Traffic zum alten System, wenn Error-Rate 2 Minuten lang über 2 % liegt.",{"type":33,"tag":41,"props":1722,"children":1724},{"id":1723},"fazit-risikomanagement-ist-ein-prozess-nicht-ein-einmaliges-projekt",[1725],{"type":38,"value":1726},"Fazit: Risikomanagement ist ein Prozess, nicht ein einmaliges Projekt",{"type":33,"tag":34,"props":1728,"children":1729},{},[1730],{"type":38,"value":1731},"Headless-Migration erfordert 90 Tage aktive Überwachung nach dem Deployment. Core Web Vitals (LCP, CLS, FID), Conversion-Funnel-Metriken und Server-side Error Rates sollten wöchentlich in Dashboards verfolgt werden. Auch wenn die ersten 30 Tage problemlos laufen, können Seasonality-Muster (etwa Black Friday) neue Last-Szenarien offenbaren.",{"type":33,"tag":34,"props":1733,"children":1734},{},[1735,1737,1746],{"type":38,"value":1736},"Der ",{"type":33,"tag":1738,"props":1739,"children":1743},"a",{"href":1740,"rel":1741},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Fheadless",[1742],"nofollow",[1744],{"type":38,"value":1745},"Headless Commerce",{"type":38,"value":1747},"-Ansatz ermöglicht mit richtigem Phasen-Rollout und Metrik-Disziplin eine sichere Infrastruktur-Transformation. Durch Erfassung von Reibungspunkten, SEO-Schutz und eine Ready-Rollback-Strategie wird die Geschwindigkeit und Flexibilität von Headless in echtes Revenue-Wachstum übersetzt.",{"type":33,"tag":1749,"props":1750,"children":1751},"style",{},[1752],{"type":38,"value":1753},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":16,"searchDepth":285,"depth":285,"links":1755},[1756,1757,1758,1759,1760],{"id":43,"depth":275,"text":46},{"id":518,"depth":275,"text":521},{"id":737,"depth":275,"text":740},{"id":1093,"depth":275,"text":1096},{"id":1723,"depth":275,"text":1726},"markdown","content:de:tech:headless-e-commerce-migration-roadmap-risikomaessiges-rollout.md","content","de\u002Ftech\u002Fheadless-e-commerce-migration-roadmap-risikomaessiges-rollout.md","de\u002Ftech\u002Fheadless-e-commerce-migration-roadmap-risikomaessiges-rollout","md",1785967477174]