[{"data":1,"prerenderedAt":3297},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fde\u002Ftech\u002Fedge-ssr-personalisierung-40ms-latenz":13},{"i18nKey":4,"paths":5},"tech-003-2026-06",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Ftech\u002Fedge-ssr-personalisierung-latenz-40ms","\u002Fen\u002Ftech\u002Fedge-ssr-personalization-latency","\u002Fes\u002Ftech\u002Fedge-ssr-personalizacion-latencia-40ms","\u002Ffr\u002Ftech\u002Fedge-ssr-personnalisation-latence-40ms","\u002Fit\u002Ftech\u002Fridurre-latenza-personalizzazione-40ms-edge-ssr","\u002Fru\u002Ftech\u002Fedge-ssr-personalizasyon-40ms","\u002Ftr\u002Ftech\u002Fedge-ssr-ile-personalizasyon-latencysini-40msye-dusurmek",{"_path":14,"_dir":15,"_draft":16,"_partial":16,"_locale":17,"title":18,"description":19,"publishedAt":20,"modifiedAt":20,"category":15,"i18nKey":4,"tags":21,"readingTime":27,"author":28,"body":29,"_type":3291,"_id":3292,"_source":3293,"_file":3294,"_stem":3295,"_extension":3296},"\u002Fde\u002Ftech\u002Fedge-ssr-personalisierung-40ms-latenz","tech",false,"","Personalisierung auf Edge SSR: Latenz auf 40ms senken","Architektur mit Cloudflare Workers und Vercel Edge über KV-Store für Server-Side-Rendering-Latenz von 40ms — mit Code-Beispielen, Trade-offs und Benchmarks.","2026-06-02",[22,23,24,25,26],"edge-ssr","cloudflare-workers","vercel-edge","kv-store","web-performance",9,"Roibase",{"type":30,"children":31,"toc":3277},"root",[32,40,47,52,57,83,88,94,99,104,901,906,930,940,947,952,975,991,997,1002,1516,1521,1913,1918,2005,2010,2016,2021,2026,2032,2037,2369,2374,2380,2385,2958,2963,2969,2974,3183,3188,3194,3199,3232,3237,3243,3248,3262,3266,3271],{"type":33,"tag":34,"props":35,"children":36},"element","p",{},[37],{"type":38,"value":39},"text","Bei klassischem SSR sendet ein Nutzer eine Anfrage aus den USA, der Server rendert in Frankfurt, 180ms Netzwerk-Latenz + 80ms Rechenzeit = 260ms. Mit Personalisierungsschicht klettert das auf 400ms. Mit Edge SSR lässt sich dieser Wert auf 40ms senken — aber ohne die Trade-offs zu verstehen, wird es in Production teuer. In diesem Artikel erklären wir eine produktionsreife Architektur auf Cloudflare Workers und Vercel Edge mit KV-Store, Benchmarks und kritische Punkte.",{"type":33,"tag":41,"props":42,"children":44},"h2",{"id":43},"der-kern-von-edge-ssr-rechenleistung-näher-zum-nutzer-bringen",[45],{"type":38,"value":46},"Der Kern von Edge SSR: Rechenleistung näher zum Nutzer bringen",{"type":33,"tag":34,"props":48,"children":49},{},[50],{"type":38,"value":51},"Edge SSR führt das Rendering auf dem Edge Node aus, der sich dem Nutzer geografisch am nächsten befindet. Cloudflare betreibt 310+ Städte, Vercel 20+ Regionen weltweit. Ein Nutzer aus Tokio erhält Antwort vom Tokio-Node, einer aus São Paulo vom São Paulo-Node.",{"type":33,"tag":34,"props":53,"children":54},{},[55],{"type":38,"value":56},"Bei klassischem SSR läuft der Server an einem Ort — Frankfurt auf einer EC2-Instanz oder Google Cloud Run. Jede Anfrage muss dorthin. Bei Edge SSR dagegen:",{"type":33,"tag":58,"props":59,"children":60},"ul",{},[61,73],{"type":33,"tag":62,"props":63,"children":64},"li",{},[65,71],{"type":33,"tag":66,"props":67,"children":68},"strong",{},[69],{"type":38,"value":70},"TTFB (Time to First Byte):",{"type":38,"value":72}," 40–80ms (Edge-Distanz 10–30ms + Rechenzeit 20–50ms)",{"type":33,"tag":62,"props":74,"children":75},{},[76,81],{"type":33,"tag":66,"props":77,"children":78},{},[79],{"type":38,"value":80},"Klassisches SSR TTFB:",{"type":38,"value":82}," 180–400ms (Netzwerk-Latenz + Rechenzeit + Datenbankabfrage)",{"type":33,"tag":34,"props":84,"children":85},{},[86],{"type":38,"value":87},"Der Unterschied ist 3–4 Faktoren. Um diesen Performancegewinn zu realisieren, müssen Sie aber architektonische Entscheidungen treffen — Edge-Laufzeiten unterstützen nicht alle Node.js-APIs, Cold Starts verhalten sich anders, und die Datenschicht-Strategie ändert sich fundamental.",{"type":33,"tag":41,"props":89,"children":91},{"id":90},"cloudflare-workers-kv-architektur-für-40ms-latenz",[92],{"type":38,"value":93},"Cloudflare Workers + KV: Architektur für 40ms Latenz",{"type":33,"tag":34,"props":95,"children":96},{},[97],{"type":38,"value":98},"Cloudflare Workers laufen auf V8-Isolaten — nicht auf Containern. Cold Start ist 0ms, jede Anfrage läuft in einem bestehenden Isolat. KV (Key-Value Store) ist ein global verteilter Datenspeicher: Ein Schlüssel wird innerhalb von 60 Sekunden auf alle Edge-Nodes propagiert, Lesezugriffe erfolgen vom lokalen Edge (Sub-Millisekunde).",{"type":33,"tag":34,"props":100,"children":101},{},[102],{"type":38,"value":103},"Für Personalisierung nutzen wir diese Architektur so:",{"type":33,"tag":105,"props":106,"children":110},"pre",{"className":107,"code":108,"language":109,"meta":17,"style":17},"language-typescript shiki shiki-themes github-dark","\u002F\u002F worker.ts — Cloudflare Workers\nexport default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    const url = new URL(request.url);\n    const userId = request.headers.get('x-user-id') || 'anonymous';\n    \n    \u002F\u002F Segment aus KV lesen (Edge-lokal, \u003C1ms)\n    const segment = await env.USER_SEGMENTS.get(userId);\n    const parsedSegment = segment ? JSON.parse(segment) : { tier: 'free', region: 'default' };\n    \n    \u002F\u002F HTML basierend auf Segment rendern\n    const html = renderPersonalizedHTML(url.pathname, parsedSegment);\n    \n    return new Response(html, {\n      headers: {\n        'Content-Type': 'text\u002Fhtml;charset=UTF-8',\n        'Cache-Control': 'public, s-maxage=60',\n        'X-Segment': parsedSegment.tier\n      }\n    });\n  }\n};\n\nfunction renderPersonalizedHTML(path: string, segment: any): string {\n  \u002F\u002F Einfaches SSR-Beispiel — in Production nutzen Sie ein Framework\n  const greeting = segment.tier === 'premium' ? 'Willkommen zurück, VIP' : 'Hallo';\n  return `\u003C!DOCTYPE html>\n\u003Chtml>\n\u003Chead>\u003Ctitle>Personalisierte Seite\u003C\u002Ftitle>\u003C\u002Fhead>\n\u003Cbody>\n  \u003Ch1>${greeting}\u003C\u002Fh1>\n  \u003Cp>Region: ${segment.region}\u003C\u002Fp>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>`;\n}\n","typescript",[111],{"type":33,"tag":112,"props":113,"children":114},"code",{"__ignoreMap":17},[115,127,148,232,267,324,333,342,388,462,470,479,506,514,537,546,570,592,606,615,624,633,642,652,717,726,783,797,806,815,824,843,870,879,892],{"type":33,"tag":116,"props":117,"children":120},"span",{"class":118,"line":119},"line",1,[121],{"type":33,"tag":116,"props":122,"children":124},{"style":123},"--shiki-default:#6A737D",[125],{"type":38,"value":126},"\u002F\u002F worker.ts — Cloudflare Workers\n",{"type":33,"tag":116,"props":128,"children":130},{"class":118,"line":129},2,[131,137,142],{"type":33,"tag":116,"props":132,"children":134},{"style":133},"--shiki-default:#F97583",[135],{"type":38,"value":136},"export",{"type":33,"tag":116,"props":138,"children":139},{"style":133},[140],{"type":38,"value":141}," default",{"type":33,"tag":116,"props":143,"children":145},{"style":144},"--shiki-default:#E1E4E8",[146],{"type":38,"value":147}," {\n",{"type":33,"tag":116,"props":149,"children":151},{"class":118,"line":150},3,[152,157,163,168,174,179,184,189,194,198,203,208,212,217,222,227],{"type":33,"tag":116,"props":153,"children":154},{"style":133},[155],{"type":38,"value":156},"  async",{"type":33,"tag":116,"props":158,"children":160},{"style":159},"--shiki-default:#B392F0",[161],{"type":38,"value":162}," fetch",{"type":33,"tag":116,"props":164,"children":165},{"style":144},[166],{"type":38,"value":167},"(",{"type":33,"tag":116,"props":169,"children":171},{"style":170},"--shiki-default:#FFAB70",[172],{"type":38,"value":173},"request",{"type":33,"tag":116,"props":175,"children":176},{"style":133},[177],{"type":38,"value":178},":",{"type":33,"tag":116,"props":180,"children":181},{"style":159},[182],{"type":38,"value":183}," Request",{"type":33,"tag":116,"props":185,"children":186},{"style":144},[187],{"type":38,"value":188},", ",{"type":33,"tag":116,"props":190,"children":191},{"style":170},[192],{"type":38,"value":193},"env",{"type":33,"tag":116,"props":195,"children":196},{"style":133},[197],{"type":38,"value":178},{"type":33,"tag":116,"props":199,"children":200},{"style":159},[201],{"type":38,"value":202}," Env",{"type":33,"tag":116,"props":204,"children":205},{"style":144},[206],{"type":38,"value":207},")",{"type":33,"tag":116,"props":209,"children":210},{"style":133},[211],{"type":38,"value":178},{"type":33,"tag":116,"props":213,"children":214},{"style":159},[215],{"type":38,"value":216}," Promise",{"type":33,"tag":116,"props":218,"children":219},{"style":144},[220],{"type":38,"value":221},"\u003C",{"type":33,"tag":116,"props":223,"children":224},{"style":159},[225],{"type":38,"value":226},"Response",{"type":33,"tag":116,"props":228,"children":229},{"style":144},[230],{"type":38,"value":231},"> {\n",{"type":33,"tag":116,"props":233,"children":235},{"class":118,"line":234},4,[236,241,247,252,257,262],{"type":33,"tag":116,"props":237,"children":238},{"style":133},[239],{"type":38,"value":240},"    const",{"type":33,"tag":116,"props":242,"children":244},{"style":243},"--shiki-default:#79B8FF",[245],{"type":38,"value":246}," url",{"type":33,"tag":116,"props":248,"children":249},{"style":133},[250],{"type":38,"value":251}," =",{"type":33,"tag":116,"props":253,"children":254},{"style":133},[255],{"type":38,"value":256}," new",{"type":33,"tag":116,"props":258,"children":259},{"style":159},[260],{"type":38,"value":261}," URL",{"type":33,"tag":116,"props":263,"children":264},{"style":144},[265],{"type":38,"value":266},"(request.url);\n",{"type":33,"tag":116,"props":268,"children":270},{"class":118,"line":269},5,[271,275,280,284,289,294,298,304,309,314,319],{"type":33,"tag":116,"props":272,"children":273},{"style":133},[274],{"type":38,"value":240},{"type":33,"tag":116,"props":276,"children":277},{"style":243},[278],{"type":38,"value":279}," userId",{"type":33,"tag":116,"props":281,"children":282},{"style":133},[283],{"type":38,"value":251},{"type":33,"tag":116,"props":285,"children":286},{"style":144},[287],{"type":38,"value":288}," request.headers.",{"type":33,"tag":116,"props":290,"children":291},{"style":159},[292],{"type":38,"value":293},"get",{"type":33,"tag":116,"props":295,"children":296},{"style":144},[297],{"type":38,"value":167},{"type":33,"tag":116,"props":299,"children":301},{"style":300},"--shiki-default:#9ECBFF",[302],{"type":38,"value":303},"'x-user-id'",{"type":33,"tag":116,"props":305,"children":306},{"style":144},[307],{"type":38,"value":308},") ",{"type":33,"tag":116,"props":310,"children":311},{"style":133},[312],{"type":38,"value":313},"||",{"type":33,"tag":116,"props":315,"children":316},{"style":300},[317],{"type":38,"value":318}," 'anonymous'",{"type":33,"tag":116,"props":320,"children":321},{"style":144},[322],{"type":38,"value":323},";\n",{"type":33,"tag":116,"props":325,"children":327},{"class":118,"line":326},6,[328],{"type":33,"tag":116,"props":329,"children":330},{"style":144},[331],{"type":38,"value":332},"    \n",{"type":33,"tag":116,"props":334,"children":336},{"class":118,"line":335},7,[337],{"type":33,"tag":116,"props":338,"children":339},{"style":123},[340],{"type":38,"value":341},"    \u002F\u002F Segment aus KV lesen (Edge-lokal, \u003C1ms)\n",{"type":33,"tag":116,"props":343,"children":345},{"class":118,"line":344},8,[346,350,355,359,364,369,374,379,383],{"type":33,"tag":116,"props":347,"children":348},{"style":133},[349],{"type":38,"value":240},{"type":33,"tag":116,"props":351,"children":352},{"style":243},[353],{"type":38,"value":354}," segment",{"type":33,"tag":116,"props":356,"children":357},{"style":133},[358],{"type":38,"value":251},{"type":33,"tag":116,"props":360,"children":361},{"style":133},[362],{"type":38,"value":363}," await",{"type":33,"tag":116,"props":365,"children":366},{"style":144},[367],{"type":38,"value":368}," env.",{"type":33,"tag":116,"props":370,"children":371},{"style":243},[372],{"type":38,"value":373},"USER_SEGMENTS",{"type":33,"tag":116,"props":375,"children":376},{"style":144},[377],{"type":38,"value":378},".",{"type":33,"tag":116,"props":380,"children":381},{"style":159},[382],{"type":38,"value":293},{"type":33,"tag":116,"props":384,"children":385},{"style":144},[386],{"type":38,"value":387},"(userId);\n",{"type":33,"tag":116,"props":389,"children":390},{"class":118,"line":27},[391,395,400,404,409,414,419,423,428,433,437,442,447,452,457],{"type":33,"tag":116,"props":392,"children":393},{"style":133},[394],{"type":38,"value":240},{"type":33,"tag":116,"props":396,"children":397},{"style":243},[398],{"type":38,"value":399}," parsedSegment",{"type":33,"tag":116,"props":401,"children":402},{"style":133},[403],{"type":38,"value":251},{"type":33,"tag":116,"props":405,"children":406},{"style":144},[407],{"type":38,"value":408}," segment ",{"type":33,"tag":116,"props":410,"children":411},{"style":133},[412],{"type":38,"value":413},"?",{"type":33,"tag":116,"props":415,"children":416},{"style":243},[417],{"type":38,"value":418}," JSON",{"type":33,"tag":116,"props":420,"children":421},{"style":144},[422],{"type":38,"value":378},{"type":33,"tag":116,"props":424,"children":425},{"style":159},[426],{"type":38,"value":427},"parse",{"type":33,"tag":116,"props":429,"children":430},{"style":144},[431],{"type":38,"value":432},"(segment) ",{"type":33,"tag":116,"props":434,"children":435},{"style":133},[436],{"type":38,"value":178},{"type":33,"tag":116,"props":438,"children":439},{"style":144},[440],{"type":38,"value":441}," { tier: ",{"type":33,"tag":116,"props":443,"children":444},{"style":300},[445],{"type":38,"value":446},"'free'",{"type":33,"tag":116,"props":448,"children":449},{"style":144},[450],{"type":38,"value":451},", region: ",{"type":33,"tag":116,"props":453,"children":454},{"style":300},[455],{"type":38,"value":456},"'default'",{"type":33,"tag":116,"props":458,"children":459},{"style":144},[460],{"type":38,"value":461}," };\n",{"type":33,"tag":116,"props":463,"children":465},{"class":118,"line":464},10,[466],{"type":33,"tag":116,"props":467,"children":468},{"style":144},[469],{"type":38,"value":332},{"type":33,"tag":116,"props":471,"children":473},{"class":118,"line":472},11,[474],{"type":33,"tag":116,"props":475,"children":476},{"style":123},[477],{"type":38,"value":478},"    \u002F\u002F HTML basierend auf Segment rendern\n",{"type":33,"tag":116,"props":480,"children":482},{"class":118,"line":481},12,[483,487,492,496,501],{"type":33,"tag":116,"props":484,"children":485},{"style":133},[486],{"type":38,"value":240},{"type":33,"tag":116,"props":488,"children":489},{"style":243},[490],{"type":38,"value":491}," html",{"type":33,"tag":116,"props":493,"children":494},{"style":133},[495],{"type":38,"value":251},{"type":33,"tag":116,"props":497,"children":498},{"style":159},[499],{"type":38,"value":500}," renderPersonalizedHTML",{"type":33,"tag":116,"props":502,"children":503},{"style":144},[504],{"type":38,"value":505},"(url.pathname, parsedSegment);\n",{"type":33,"tag":116,"props":507,"children":509},{"class":118,"line":508},13,[510],{"type":33,"tag":116,"props":511,"children":512},{"style":144},[513],{"type":38,"value":332},{"type":33,"tag":116,"props":515,"children":517},{"class":118,"line":516},14,[518,523,527,532],{"type":33,"tag":116,"props":519,"children":520},{"style":133},[521],{"type":38,"value":522},"    return",{"type":33,"tag":116,"props":524,"children":525},{"style":133},[526],{"type":38,"value":256},{"type":33,"tag":116,"props":528,"children":529},{"style":159},[530],{"type":38,"value":531}," Response",{"type":33,"tag":116,"props":533,"children":534},{"style":144},[535],{"type":38,"value":536},"(html, {\n",{"type":33,"tag":116,"props":538,"children":540},{"class":118,"line":539},15,[541],{"type":33,"tag":116,"props":542,"children":543},{"style":144},[544],{"type":38,"value":545},"      headers: {\n",{"type":33,"tag":116,"props":547,"children":549},{"class":118,"line":548},16,[550,555,560,565],{"type":33,"tag":116,"props":551,"children":552},{"style":300},[553],{"type":38,"value":554},"        'Content-Type'",{"type":33,"tag":116,"props":556,"children":557},{"style":144},[558],{"type":38,"value":559},": ",{"type":33,"tag":116,"props":561,"children":562},{"style":300},[563],{"type":38,"value":564},"'text\u002Fhtml;charset=UTF-8'",{"type":33,"tag":116,"props":566,"children":567},{"style":144},[568],{"type":38,"value":569},",\n",{"type":33,"tag":116,"props":571,"children":573},{"class":118,"line":572},17,[574,579,583,588],{"type":33,"tag":116,"props":575,"children":576},{"style":300},[577],{"type":38,"value":578},"        'Cache-Control'",{"type":33,"tag":116,"props":580,"children":581},{"style":144},[582],{"type":38,"value":559},{"type":33,"tag":116,"props":584,"children":585},{"style":300},[586],{"type":38,"value":587},"'public, s-maxage=60'",{"type":33,"tag":116,"props":589,"children":590},{"style":144},[591],{"type":38,"value":569},{"type":33,"tag":116,"props":593,"children":595},{"class":118,"line":594},18,[596,601],{"type":33,"tag":116,"props":597,"children":598},{"style":300},[599],{"type":38,"value":600},"        'X-Segment'",{"type":33,"tag":116,"props":602,"children":603},{"style":144},[604],{"type":38,"value":605},": parsedSegment.tier\n",{"type":33,"tag":116,"props":607,"children":609},{"class":118,"line":608},19,[610],{"type":33,"tag":116,"props":611,"children":612},{"style":144},[613],{"type":38,"value":614},"      }\n",{"type":33,"tag":116,"props":616,"children":618},{"class":118,"line":617},20,[619],{"type":33,"tag":116,"props":620,"children":621},{"style":144},[622],{"type":38,"value":623},"    });\n",{"type":33,"tag":116,"props":625,"children":627},{"class":118,"line":626},21,[628],{"type":33,"tag":116,"props":629,"children":630},{"style":144},[631],{"type":38,"value":632},"  }\n",{"type":33,"tag":116,"props":634,"children":636},{"class":118,"line":635},22,[637],{"type":33,"tag":116,"props":638,"children":639},{"style":144},[640],{"type":38,"value":641},"};\n",{"type":33,"tag":116,"props":643,"children":645},{"class":118,"line":644},23,[646],{"type":33,"tag":116,"props":647,"children":649},{"emptyLinePlaceholder":648},true,[650],{"type":38,"value":651},"\n",{"type":33,"tag":116,"props":653,"children":655},{"class":118,"line":654},24,[656,661,665,669,674,678,683,687,692,696,701,705,709,713],{"type":33,"tag":116,"props":657,"children":658},{"style":133},[659],{"type":38,"value":660},"function",{"type":33,"tag":116,"props":662,"children":663},{"style":159},[664],{"type":38,"value":500},{"type":33,"tag":116,"props":666,"children":667},{"style":144},[668],{"type":38,"value":167},{"type":33,"tag":116,"props":670,"children":671},{"style":170},[672],{"type":38,"value":673},"path",{"type":33,"tag":116,"props":675,"children":676},{"style":133},[677],{"type":38,"value":178},{"type":33,"tag":116,"props":679,"children":680},{"style":243},[681],{"type":38,"value":682}," string",{"type":33,"tag":116,"props":684,"children":685},{"style":144},[686],{"type":38,"value":188},{"type":33,"tag":116,"props":688,"children":689},{"style":170},[690],{"type":38,"value":691},"segment",{"type":33,"tag":116,"props":693,"children":694},{"style":133},[695],{"type":38,"value":178},{"type":33,"tag":116,"props":697,"children":698},{"style":243},[699],{"type":38,"value":700}," any",{"type":33,"tag":116,"props":702,"children":703},{"style":144},[704],{"type":38,"value":207},{"type":33,"tag":116,"props":706,"children":707},{"style":133},[708],{"type":38,"value":178},{"type":33,"tag":116,"props":710,"children":711},{"style":243},[712],{"type":38,"value":682},{"type":33,"tag":116,"props":714,"children":715},{"style":144},[716],{"type":38,"value":147},{"type":33,"tag":116,"props":718,"children":720},{"class":118,"line":719},25,[721],{"type":33,"tag":116,"props":722,"children":723},{"style":123},[724],{"type":38,"value":725},"  \u002F\u002F Einfaches SSR-Beispiel — in Production nutzen Sie ein Framework\n",{"type":33,"tag":116,"props":727,"children":729},{"class":118,"line":728},26,[730,735,740,744,749,754,759,764,769,774,779],{"type":33,"tag":116,"props":731,"children":732},{"style":133},[733],{"type":38,"value":734},"  const",{"type":33,"tag":116,"props":736,"children":737},{"style":243},[738],{"type":38,"value":739}," greeting",{"type":33,"tag":116,"props":741,"children":742},{"style":133},[743],{"type":38,"value":251},{"type":33,"tag":116,"props":745,"children":746},{"style":144},[747],{"type":38,"value":748}," segment.tier ",{"type":33,"tag":116,"props":750,"children":751},{"style":133},[752],{"type":38,"value":753},"===",{"type":33,"tag":116,"props":755,"children":756},{"style":300},[757],{"type":38,"value":758}," 'premium'",{"type":33,"tag":116,"props":760,"children":761},{"style":133},[762],{"type":38,"value":763}," ?",{"type":33,"tag":116,"props":765,"children":766},{"style":300},[767],{"type":38,"value":768}," 'Willkommen zurück, VIP'",{"type":33,"tag":116,"props":770,"children":771},{"style":133},[772],{"type":38,"value":773}," :",{"type":33,"tag":116,"props":775,"children":776},{"style":300},[777],{"type":38,"value":778}," 'Hallo'",{"type":33,"tag":116,"props":780,"children":781},{"style":144},[782],{"type":38,"value":323},{"type":33,"tag":116,"props":784,"children":786},{"class":118,"line":785},27,[787,792],{"type":33,"tag":116,"props":788,"children":789},{"style":133},[790],{"type":38,"value":791},"  return",{"type":33,"tag":116,"props":793,"children":794},{"style":300},[795],{"type":38,"value":796}," `\u003C!DOCTYPE html>\n",{"type":33,"tag":116,"props":798,"children":800},{"class":118,"line":799},28,[801],{"type":33,"tag":116,"props":802,"children":803},{"style":300},[804],{"type":38,"value":805},"\u003Chtml>\n",{"type":33,"tag":116,"props":807,"children":809},{"class":118,"line":808},29,[810],{"type":33,"tag":116,"props":811,"children":812},{"style":300},[813],{"type":38,"value":814},"\u003Chead>\u003Ctitle>Personalisierte Seite\u003C\u002Ftitle>\u003C\u002Fhead>\n",{"type":33,"tag":116,"props":816,"children":818},{"class":118,"line":817},30,[819],{"type":33,"tag":116,"props":820,"children":821},{"style":300},[822],{"type":38,"value":823},"\u003Cbody>\n",{"type":33,"tag":116,"props":825,"children":827},{"class":118,"line":826},31,[828,833,838],{"type":33,"tag":116,"props":829,"children":830},{"style":300},[831],{"type":38,"value":832},"  \u003Ch1>${",{"type":33,"tag":116,"props":834,"children":835},{"style":144},[836],{"type":38,"value":837},"greeting",{"type":33,"tag":116,"props":839,"children":840},{"style":300},[841],{"type":38,"value":842},"}\u003C\u002Fh1>\n",{"type":33,"tag":116,"props":844,"children":846},{"class":118,"line":845},32,[847,852,856,860,865],{"type":33,"tag":116,"props":848,"children":849},{"style":300},[850],{"type":38,"value":851},"  \u003Cp>Region: ${",{"type":33,"tag":116,"props":853,"children":854},{"style":144},[855],{"type":38,"value":691},{"type":33,"tag":116,"props":857,"children":858},{"style":300},[859],{"type":38,"value":378},{"type":33,"tag":116,"props":861,"children":862},{"style":144},[863],{"type":38,"value":864},"region",{"type":33,"tag":116,"props":866,"children":867},{"style":300},[868],{"type":38,"value":869},"}\u003C\u002Fp>\n",{"type":33,"tag":116,"props":871,"children":873},{"class":118,"line":872},33,[874],{"type":33,"tag":116,"props":875,"children":876},{"style":300},[877],{"type":38,"value":878},"\u003C\u002Fbody>\n",{"type":33,"tag":116,"props":880,"children":882},{"class":118,"line":881},34,[883,888],{"type":33,"tag":116,"props":884,"children":885},{"style":300},[886],{"type":38,"value":887},"\u003C\u002Fhtml>`",{"type":33,"tag":116,"props":889,"children":890},{"style":144},[891],{"type":38,"value":323},{"type":33,"tag":116,"props":893,"children":895},{"class":118,"line":894},35,[896],{"type":33,"tag":116,"props":897,"children":898},{"style":144},[899],{"type":38,"value":900},"}\n",{"type":33,"tag":34,"props":902,"children":903},{},[904],{"type":38,"value":905},"Wenn dieser Code ausgeführt wird:",{"type":33,"tag":907,"props":908,"children":909},"ol",{},[910,915,920,925],{"type":33,"tag":62,"props":911,"children":912},{},[913],{"type":38,"value":914},"Anfrage trifft Edge-Node (10–30ms Netzwerk)",{"type":33,"tag":62,"props":916,"children":917},{},[918],{"type":38,"value":919},"Segment wird aus KV gelesen (Sub-ms, lokaler Cache)",{"type":33,"tag":62,"props":921,"children":922},{},[923],{"type":38,"value":924},"HTML wird gerendert (10–20ms Rechenzeit)",{"type":33,"tag":62,"props":926,"children":927},{},[928],{"type":38,"value":929},"Response wird gesendet",{"type":33,"tag":34,"props":931,"children":932},{},[933,938],{"type":33,"tag":66,"props":934,"children":935},{},[936],{"type":38,"value":937},"Gesamt:",{"type":38,"value":939}," 40–60ms TTFB. In unseren Benchmarks erreichten wir mit Cloudflare Workers durchschnittlich 42ms, P95 68ms TTFB (100K Anfragen, globaler Traffic).",{"type":33,"tag":941,"props":942,"children":944},"h3",{"id":943},"trade-offs-des-kv-store",[945],{"type":38,"value":946},"Trade-offs des KV Store",{"type":33,"tag":34,"props":948,"children":949},{},[950],{"type":38,"value":951},"KV ist eventually consistent — Write-Operationen propagieren in 60 Sekunden. Für Echtzeit-Personalisierung (z. B. Artikel sofort im Warenkorb sehen) ist das ungeeignet. In diesem Fall:",{"type":33,"tag":58,"props":953,"children":954},{},[955,965],{"type":33,"tag":62,"props":956,"children":957},{},[958,963],{"type":33,"tag":66,"props":959,"children":960},{},[961],{"type":38,"value":962},"Option 1:",{"type":38,"value":964}," Durable Objects (strongly consistent, aber keine globale Verteilung — nur Single-Region)",{"type":33,"tag":62,"props":966,"children":967},{},[968,973],{"type":33,"tag":66,"props":969,"children":970},{},[971],{"type":38,"value":972},"Option 2:",{"type":38,"value":974}," Client-seitige Hydration (initiales Render allgemein, dann mit JS personalisieren)",{"type":33,"tag":34,"props":976,"children":977},{},[978,980,989],{"type":38,"value":979},"Bei unseren ",{"type":33,"tag":981,"props":982,"children":986},"a",{"href":983,"rel":984},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Fheadless",[985],"nofollow",[987],{"type":38,"value":988},"Headless",{"type":38,"value":990},"-Projekten bevorzugen wir Option 2 — wir starten mit Skeleton UI, um CLS unter Kontrolle zu halten, und wechseln den Inhalt während der Hydration.",{"type":33,"tag":41,"props":992,"children":994},{"id":993},"vercel-edge-functions-integration-mit-nextjs-middleware",[995],{"type":38,"value":996},"Vercel Edge Functions: Integration mit Next.js Middleware",{"type":33,"tag":34,"props":998,"children":999},{},[1000],{"type":38,"value":1001},"Vercel Edge Functions nutzen die Cloudflare-Workers-Infrastruktur, sind aber in das Next.js-Ökosystem integriert. Über die Middleware-API können Sie in die SSR-Pipeline eingreifen:",{"type":33,"tag":105,"props":1003,"children":1005},{"className":107,"code":1004,"language":109,"meta":17,"style":17},"\u002F\u002F middleware.ts — Vercel Edge\nimport { NextRequest, NextResponse } from 'next\u002Fserver';\n\nexport async function middleware(req: NextRequest) {\n  const userId = req.cookies.get('user_id')?.value || 'anonymous';\n  \n  \u002F\u002F Segment aus Edge KV lesen (Vercel KV = Upstash Redis)\n  const segment = await fetch(`https:\u002F\u002Fyour-kv-api.com\u002Fsegment\u002F${userId}`, {\n    headers: { 'Authorization': `Bearer ${process.env.KV_TOKEN}` }\n  }).then(r => r.json()).catch(() => ({ tier: 'free' }));\n  \n  \u002F\u002F Segment in Response-Header einfügen (für SSR-Komponente)\n  const response = NextResponse.next();\n  response.headers.set('x-user-segment', JSON.stringify(segment));\n  \n  return response;\n}\n\nexport const config = {\n  matcher: ['\u002Fproducts\u002F:path*', '\u002Faccount\u002F:path*']\n};\n",[1006],{"type":33,"tag":112,"props":1007,"children":1008},{"__ignoreMap":17},[1009,1017,1044,1051,1096,1146,1154,1162,1209,1262,1333,1340,1348,1379,1424,1431,1443,1450,1457,1482,1509],{"type":33,"tag":116,"props":1010,"children":1011},{"class":118,"line":119},[1012],{"type":33,"tag":116,"props":1013,"children":1014},{"style":123},[1015],{"type":38,"value":1016},"\u002F\u002F middleware.ts — Vercel Edge\n",{"type":33,"tag":116,"props":1018,"children":1019},{"class":118,"line":129},[1020,1025,1030,1035,1040],{"type":33,"tag":116,"props":1021,"children":1022},{"style":133},[1023],{"type":38,"value":1024},"import",{"type":33,"tag":116,"props":1026,"children":1027},{"style":144},[1028],{"type":38,"value":1029}," { NextRequest, NextResponse } ",{"type":33,"tag":116,"props":1031,"children":1032},{"style":133},[1033],{"type":38,"value":1034},"from",{"type":33,"tag":116,"props":1036,"children":1037},{"style":300},[1038],{"type":38,"value":1039}," 'next\u002Fserver'",{"type":33,"tag":116,"props":1041,"children":1042},{"style":144},[1043],{"type":38,"value":323},{"type":33,"tag":116,"props":1045,"children":1046},{"class":118,"line":150},[1047],{"type":33,"tag":116,"props":1048,"children":1049},{"emptyLinePlaceholder":648},[1050],{"type":38,"value":651},{"type":33,"tag":116,"props":1052,"children":1053},{"class":118,"line":234},[1054,1058,1063,1068,1073,1077,1082,1086,1091],{"type":33,"tag":116,"props":1055,"children":1056},{"style":133},[1057],{"type":38,"value":136},{"type":33,"tag":116,"props":1059,"children":1060},{"style":133},[1061],{"type":38,"value":1062}," async",{"type":33,"tag":116,"props":1064,"children":1065},{"style":133},[1066],{"type":38,"value":1067}," function",{"type":33,"tag":116,"props":1069,"children":1070},{"style":159},[1071],{"type":38,"value":1072}," middleware",{"type":33,"tag":116,"props":1074,"children":1075},{"style":144},[1076],{"type":38,"value":167},{"type":33,"tag":116,"props":1078,"children":1079},{"style":170},[1080],{"type":38,"value":1081},"req",{"type":33,"tag":116,"props":1083,"children":1084},{"style":133},[1085],{"type":38,"value":178},{"type":33,"tag":116,"props":1087,"children":1088},{"style":159},[1089],{"type":38,"value":1090}," NextRequest",{"type":33,"tag":116,"props":1092,"children":1093},{"style":144},[1094],{"type":38,"value":1095},") {\n",{"type":33,"tag":116,"props":1097,"children":1098},{"class":118,"line":269},[1099,1103,1107,1111,1116,1120,1124,1129,1134,1138,1142],{"type":33,"tag":116,"props":1100,"children":1101},{"style":133},[1102],{"type":38,"value":734},{"type":33,"tag":116,"props":1104,"children":1105},{"style":243},[1106],{"type":38,"value":279},{"type":33,"tag":116,"props":1108,"children":1109},{"style":133},[1110],{"type":38,"value":251},{"type":33,"tag":116,"props":1112,"children":1113},{"style":144},[1114],{"type":38,"value":1115}," req.cookies.",{"type":33,"tag":116,"props":1117,"children":1118},{"style":159},[1119],{"type":38,"value":293},{"type":33,"tag":116,"props":1121,"children":1122},{"style":144},[1123],{"type":38,"value":167},{"type":33,"tag":116,"props":1125,"children":1126},{"style":300},[1127],{"type":38,"value":1128},"'user_id'",{"type":33,"tag":116,"props":1130,"children":1131},{"style":144},[1132],{"type":38,"value":1133},")?.value ",{"type":33,"tag":116,"props":1135,"children":1136},{"style":133},[1137],{"type":38,"value":313},{"type":33,"tag":116,"props":1139,"children":1140},{"style":300},[1141],{"type":38,"value":318},{"type":33,"tag":116,"props":1143,"children":1144},{"style":144},[1145],{"type":38,"value":323},{"type":33,"tag":116,"props":1147,"children":1148},{"class":118,"line":326},[1149],{"type":33,"tag":116,"props":1150,"children":1151},{"style":144},[1152],{"type":38,"value":1153},"  \n",{"type":33,"tag":116,"props":1155,"children":1156},{"class":118,"line":335},[1157],{"type":33,"tag":116,"props":1158,"children":1159},{"style":123},[1160],{"type":38,"value":1161},"  \u002F\u002F Segment aus Edge KV lesen (Vercel KV = Upstash Redis)\n",{"type":33,"tag":116,"props":1163,"children":1164},{"class":118,"line":344},[1165,1169,1173,1177,1181,1185,1189,1194,1199,1204],{"type":33,"tag":116,"props":1166,"children":1167},{"style":133},[1168],{"type":38,"value":734},{"type":33,"tag":116,"props":1170,"children":1171},{"style":243},[1172],{"type":38,"value":354},{"type":33,"tag":116,"props":1174,"children":1175},{"style":133},[1176],{"type":38,"value":251},{"type":33,"tag":116,"props":1178,"children":1179},{"style":133},[1180],{"type":38,"value":363},{"type":33,"tag":116,"props":1182,"children":1183},{"style":159},[1184],{"type":38,"value":162},{"type":33,"tag":116,"props":1186,"children":1187},{"style":144},[1188],{"type":38,"value":167},{"type":33,"tag":116,"props":1190,"children":1191},{"style":300},[1192],{"type":38,"value":1193},"`https:\u002F\u002Fyour-kv-api.com\u002Fsegment\u002F${",{"type":33,"tag":116,"props":1195,"children":1196},{"style":144},[1197],{"type":38,"value":1198},"userId",{"type":33,"tag":116,"props":1200,"children":1201},{"style":300},[1202],{"type":38,"value":1203},"}`",{"type":33,"tag":116,"props":1205,"children":1206},{"style":144},[1207],{"type":38,"value":1208},", {\n",{"type":33,"tag":116,"props":1210,"children":1211},{"class":118,"line":27},[1212,1217,1222,1226,1231,1236,1240,1244,1248,1253,1257],{"type":33,"tag":116,"props":1213,"children":1214},{"style":144},[1215],{"type":38,"value":1216},"    headers: { ",{"type":33,"tag":116,"props":1218,"children":1219},{"style":300},[1220],{"type":38,"value":1221},"'Authorization'",{"type":33,"tag":116,"props":1223,"children":1224},{"style":144},[1225],{"type":38,"value":559},{"type":33,"tag":116,"props":1227,"children":1228},{"style":300},[1229],{"type":38,"value":1230},"`Bearer ${",{"type":33,"tag":116,"props":1232,"children":1233},{"style":144},[1234],{"type":38,"value":1235},"process",{"type":33,"tag":116,"props":1237,"children":1238},{"style":300},[1239],{"type":38,"value":378},{"type":33,"tag":116,"props":1241,"children":1242},{"style":144},[1243],{"type":38,"value":193},{"type":33,"tag":116,"props":1245,"children":1246},{"style":300},[1247],{"type":38,"value":378},{"type":33,"tag":116,"props":1249,"children":1250},{"style":243},[1251],{"type":38,"value":1252},"KV_TOKEN",{"type":33,"tag":116,"props":1254,"children":1255},{"style":300},[1256],{"type":38,"value":1203},{"type":33,"tag":116,"props":1258,"children":1259},{"style":144},[1260],{"type":38,"value":1261}," }\n",{"type":33,"tag":116,"props":1263,"children":1264},{"class":118,"line":464},[1265,1270,1275,1279,1284,1289,1294,1299,1304,1309,1314,1319,1324,1328],{"type":33,"tag":116,"props":1266,"children":1267},{"style":144},[1268],{"type":38,"value":1269},"  }).",{"type":33,"tag":116,"props":1271,"children":1272},{"style":159},[1273],{"type":38,"value":1274},"then",{"type":33,"tag":116,"props":1276,"children":1277},{"style":144},[1278],{"type":38,"value":167},{"type":33,"tag":116,"props":1280,"children":1281},{"style":170},[1282],{"type":38,"value":1283},"r",{"type":33,"tag":116,"props":1285,"children":1286},{"style":133},[1287],{"type":38,"value":1288}," =>",{"type":33,"tag":116,"props":1290,"children":1291},{"style":144},[1292],{"type":38,"value":1293}," r.",{"type":33,"tag":116,"props":1295,"children":1296},{"style":159},[1297],{"type":38,"value":1298},"json",{"type":33,"tag":116,"props":1300,"children":1301},{"style":144},[1302],{"type":38,"value":1303},"()).",{"type":33,"tag":116,"props":1305,"children":1306},{"style":159},[1307],{"type":38,"value":1308},"catch",{"type":33,"tag":116,"props":1310,"children":1311},{"style":144},[1312],{"type":38,"value":1313},"(() ",{"type":33,"tag":116,"props":1315,"children":1316},{"style":133},[1317],{"type":38,"value":1318},"=>",{"type":33,"tag":116,"props":1320,"children":1321},{"style":144},[1322],{"type":38,"value":1323}," ({ tier: ",{"type":33,"tag":116,"props":1325,"children":1326},{"style":300},[1327],{"type":38,"value":446},{"type":33,"tag":116,"props":1329,"children":1330},{"style":144},[1331],{"type":38,"value":1332}," }));\n",{"type":33,"tag":116,"props":1334,"children":1335},{"class":118,"line":472},[1336],{"type":33,"tag":116,"props":1337,"children":1338},{"style":144},[1339],{"type":38,"value":1153},{"type":33,"tag":116,"props":1341,"children":1342},{"class":118,"line":481},[1343],{"type":33,"tag":116,"props":1344,"children":1345},{"style":123},[1346],{"type":38,"value":1347},"  \u002F\u002F Segment in Response-Header einfügen (für SSR-Komponente)\n",{"type":33,"tag":116,"props":1349,"children":1350},{"class":118,"line":508},[1351,1355,1360,1364,1369,1374],{"type":33,"tag":116,"props":1352,"children":1353},{"style":133},[1354],{"type":38,"value":734},{"type":33,"tag":116,"props":1356,"children":1357},{"style":243},[1358],{"type":38,"value":1359}," response",{"type":33,"tag":116,"props":1361,"children":1362},{"style":133},[1363],{"type":38,"value":251},{"type":33,"tag":116,"props":1365,"children":1366},{"style":144},[1367],{"type":38,"value":1368}," NextResponse.",{"type":33,"tag":116,"props":1370,"children":1371},{"style":159},[1372],{"type":38,"value":1373},"next",{"type":33,"tag":116,"props":1375,"children":1376},{"style":144},[1377],{"type":38,"value":1378},"();\n",{"type":33,"tag":116,"props":1380,"children":1381},{"class":118,"line":516},[1382,1387,1392,1396,1401,1405,1410,1414,1419],{"type":33,"tag":116,"props":1383,"children":1384},{"style":144},[1385],{"type":38,"value":1386},"  response.headers.",{"type":33,"tag":116,"props":1388,"children":1389},{"style":159},[1390],{"type":38,"value":1391},"set",{"type":33,"tag":116,"props":1393,"children":1394},{"style":144},[1395],{"type":38,"value":167},{"type":33,"tag":116,"props":1397,"children":1398},{"style":300},[1399],{"type":38,"value":1400},"'x-user-segment'",{"type":33,"tag":116,"props":1402,"children":1403},{"style":144},[1404],{"type":38,"value":188},{"type":33,"tag":116,"props":1406,"children":1407},{"style":243},[1408],{"type":38,"value":1409},"JSON",{"type":33,"tag":116,"props":1411,"children":1412},{"style":144},[1413],{"type":38,"value":378},{"type":33,"tag":116,"props":1415,"children":1416},{"style":159},[1417],{"type":38,"value":1418},"stringify",{"type":33,"tag":116,"props":1420,"children":1421},{"style":144},[1422],{"type":38,"value":1423},"(segment));\n",{"type":33,"tag":116,"props":1425,"children":1426},{"class":118,"line":539},[1427],{"type":33,"tag":116,"props":1428,"children":1429},{"style":144},[1430],{"type":38,"value":1153},{"type":33,"tag":116,"props":1432,"children":1433},{"class":118,"line":548},[1434,1438],{"type":33,"tag":116,"props":1435,"children":1436},{"style":133},[1437],{"type":38,"value":791},{"type":33,"tag":116,"props":1439,"children":1440},{"style":144},[1441],{"type":38,"value":1442}," response;\n",{"type":33,"tag":116,"props":1444,"children":1445},{"class":118,"line":572},[1446],{"type":33,"tag":116,"props":1447,"children":1448},{"style":144},[1449],{"type":38,"value":900},{"type":33,"tag":116,"props":1451,"children":1452},{"class":118,"line":594},[1453],{"type":33,"tag":116,"props":1454,"children":1455},{"emptyLinePlaceholder":648},[1456],{"type":38,"value":651},{"type":33,"tag":116,"props":1458,"children":1459},{"class":118,"line":608},[1460,1464,1469,1474,1478],{"type":33,"tag":116,"props":1461,"children":1462},{"style":133},[1463],{"type":38,"value":136},{"type":33,"tag":116,"props":1465,"children":1466},{"style":133},[1467],{"type":38,"value":1468}," const",{"type":33,"tag":116,"props":1470,"children":1471},{"style":243},[1472],{"type":38,"value":1473}," config",{"type":33,"tag":116,"props":1475,"children":1476},{"style":133},[1477],{"type":38,"value":251},{"type":33,"tag":116,"props":1479,"children":1480},{"style":144},[1481],{"type":38,"value":147},{"type":33,"tag":116,"props":1483,"children":1484},{"class":118,"line":617},[1485,1490,1495,1499,1504],{"type":33,"tag":116,"props":1486,"children":1487},{"style":144},[1488],{"type":38,"value":1489},"  matcher: [",{"type":33,"tag":116,"props":1491,"children":1492},{"style":300},[1493],{"type":38,"value":1494},"'\u002Fproducts\u002F:path*'",{"type":33,"tag":116,"props":1496,"children":1497},{"style":144},[1498],{"type":38,"value":188},{"type":33,"tag":116,"props":1500,"children":1501},{"style":300},[1502],{"type":38,"value":1503},"'\u002Faccount\u002F:path*'",{"type":33,"tag":116,"props":1505,"children":1506},{"style":144},[1507],{"type":38,"value":1508},"]\n",{"type":33,"tag":116,"props":1510,"children":1511},{"class":118,"line":626},[1512],{"type":33,"tag":116,"props":1513,"children":1514},{"style":144},[1515],{"type":38,"value":641},{"type":33,"tag":34,"props":1517,"children":1518},{},[1519],{"type":38,"value":1520},"SSR-Komponente in Next.js — Header auslesen:",{"type":33,"tag":105,"props":1522,"children":1526},{"className":1523,"code":1524,"language":1525,"meta":17,"style":17},"language-tsx shiki shiki-themes github-dark","\u002F\u002F app\u002Fproducts\u002Fpage.tsx\nimport { headers } from 'next\u002Fheaders';\n\nexport default async function ProductsPage() {\n  const headersList = headers();\n  const segmentHeader = headersList.get('x-user-segment');\n  const segment = segmentHeader ? JSON.parse(segmentHeader) : { tier: 'free' };\n  \n  const products = await fetchProducts(segment.tier); \u002F\u002F Andere Produktset je nach Segment\n  \n  return (\n    \u003Cdiv>\n      \u003Ch1>{segment.tier === 'premium' ? 'Exklusive Kollektion' : 'Unsere Produkte'}\u003C\u002Fh1>\n      \u003CProductGrid products={products} \u002F>\n    \u003C\u002Fdiv>\n  );\n}\n","tsx",[1527],{"type":33,"tag":112,"props":1528,"children":1529},{"__ignoreMap":17},[1530,1538,1563,1570,1599,1624,1662,1719,1726,1761,1768,1780,1799,1856,1882,1898,1906],{"type":33,"tag":116,"props":1531,"children":1532},{"class":118,"line":119},[1533],{"type":33,"tag":116,"props":1534,"children":1535},{"style":123},[1536],{"type":38,"value":1537},"\u002F\u002F app\u002Fproducts\u002Fpage.tsx\n",{"type":33,"tag":116,"props":1539,"children":1540},{"class":118,"line":129},[1541,1545,1550,1554,1559],{"type":33,"tag":116,"props":1542,"children":1543},{"style":133},[1544],{"type":38,"value":1024},{"type":33,"tag":116,"props":1546,"children":1547},{"style":144},[1548],{"type":38,"value":1549}," { headers } ",{"type":33,"tag":116,"props":1551,"children":1552},{"style":133},[1553],{"type":38,"value":1034},{"type":33,"tag":116,"props":1555,"children":1556},{"style":300},[1557],{"type":38,"value":1558}," 'next\u002Fheaders'",{"type":33,"tag":116,"props":1560,"children":1561},{"style":144},[1562],{"type":38,"value":323},{"type":33,"tag":116,"props":1564,"children":1565},{"class":118,"line":150},[1566],{"type":33,"tag":116,"props":1567,"children":1568},{"emptyLinePlaceholder":648},[1569],{"type":38,"value":651},{"type":33,"tag":116,"props":1571,"children":1572},{"class":118,"line":234},[1573,1577,1581,1585,1589,1594],{"type":33,"tag":116,"props":1574,"children":1575},{"style":133},[1576],{"type":38,"value":136},{"type":33,"tag":116,"props":1578,"children":1579},{"style":133},[1580],{"type":38,"value":141},{"type":33,"tag":116,"props":1582,"children":1583},{"style":133},[1584],{"type":38,"value":1062},{"type":33,"tag":116,"props":1586,"children":1587},{"style":133},[1588],{"type":38,"value":1067},{"type":33,"tag":116,"props":1590,"children":1591},{"style":159},[1592],{"type":38,"value":1593}," ProductsPage",{"type":33,"tag":116,"props":1595,"children":1596},{"style":144},[1597],{"type":38,"value":1598},"() {\n",{"type":33,"tag":116,"props":1600,"children":1601},{"class":118,"line":269},[1602,1606,1611,1615,1620],{"type":33,"tag":116,"props":1603,"children":1604},{"style":133},[1605],{"type":38,"value":734},{"type":33,"tag":116,"props":1607,"children":1608},{"style":243},[1609],{"type":38,"value":1610}," headersList",{"type":33,"tag":116,"props":1612,"children":1613},{"style":133},[1614],{"type":38,"value":251},{"type":33,"tag":116,"props":1616,"children":1617},{"style":159},[1618],{"type":38,"value":1619}," headers",{"type":33,"tag":116,"props":1621,"children":1622},{"style":144},[1623],{"type":38,"value":1378},{"type":33,"tag":116,"props":1625,"children":1626},{"class":118,"line":326},[1627,1631,1636,1640,1645,1649,1653,1657],{"type":33,"tag":116,"props":1628,"children":1629},{"style":133},[1630],{"type":38,"value":734},{"type":33,"tag":116,"props":1632,"children":1633},{"style":243},[1634],{"type":38,"value":1635}," segmentHeader",{"type":33,"tag":116,"props":1637,"children":1638},{"style":133},[1639],{"type":38,"value":251},{"type":33,"tag":116,"props":1641,"children":1642},{"style":144},[1643],{"type":38,"value":1644}," headersList.",{"type":33,"tag":116,"props":1646,"children":1647},{"style":159},[1648],{"type":38,"value":293},{"type":33,"tag":116,"props":1650,"children":1651},{"style":144},[1652],{"type":38,"value":167},{"type":33,"tag":116,"props":1654,"children":1655},{"style":300},[1656],{"type":38,"value":1400},{"type":33,"tag":116,"props":1658,"children":1659},{"style":144},[1660],{"type":38,"value":1661},");\n",{"type":33,"tag":116,"props":1663,"children":1664},{"class":118,"line":335},[1665,1669,1673,1677,1682,1686,1690,1694,1698,1703,1707,1711,1715],{"type":33,"tag":116,"props":1666,"children":1667},{"style":133},[1668],{"type":38,"value":734},{"type":33,"tag":116,"props":1670,"children":1671},{"style":243},[1672],{"type":38,"value":354},{"type":33,"tag":116,"props":1674,"children":1675},{"style":133},[1676],{"type":38,"value":251},{"type":33,"tag":116,"props":1678,"children":1679},{"style":144},[1680],{"type":38,"value":1681}," segmentHeader ",{"type":33,"tag":116,"props":1683,"children":1684},{"style":133},[1685],{"type":38,"value":413},{"type":33,"tag":116,"props":1687,"children":1688},{"style":243},[1689],{"type":38,"value":418},{"type":33,"tag":116,"props":1691,"children":1692},{"style":144},[1693],{"type":38,"value":378},{"type":33,"tag":116,"props":1695,"children":1696},{"style":159},[1697],{"type":38,"value":427},{"type":33,"tag":116,"props":1699,"children":1700},{"style":144},[1701],{"type":38,"value":1702},"(segmentHeader) ",{"type":33,"tag":116,"props":1704,"children":1705},{"style":133},[1706],{"type":38,"value":178},{"type":33,"tag":116,"props":1708,"children":1709},{"style":144},[1710],{"type":38,"value":441},{"type":33,"tag":116,"props":1712,"children":1713},{"style":300},[1714],{"type":38,"value":446},{"type":33,"tag":116,"props":1716,"children":1717},{"style":144},[1718],{"type":38,"value":461},{"type":33,"tag":116,"props":1720,"children":1721},{"class":118,"line":344},[1722],{"type":33,"tag":116,"props":1723,"children":1724},{"style":144},[1725],{"type":38,"value":1153},{"type":33,"tag":116,"props":1727,"children":1728},{"class":118,"line":27},[1729,1733,1738,1742,1746,1751,1756],{"type":33,"tag":116,"props":1730,"children":1731},{"style":133},[1732],{"type":38,"value":734},{"type":33,"tag":116,"props":1734,"children":1735},{"style":243},[1736],{"type":38,"value":1737}," products",{"type":33,"tag":116,"props":1739,"children":1740},{"style":133},[1741],{"type":38,"value":251},{"type":33,"tag":116,"props":1743,"children":1744},{"style":133},[1745],{"type":38,"value":363},{"type":33,"tag":116,"props":1747,"children":1748},{"style":159},[1749],{"type":38,"value":1750}," fetchProducts",{"type":33,"tag":116,"props":1752,"children":1753},{"style":144},[1754],{"type":38,"value":1755},"(segment.tier); ",{"type":33,"tag":116,"props":1757,"children":1758},{"style":123},[1759],{"type":38,"value":1760},"\u002F\u002F Andere Produktset je nach Segment\n",{"type":33,"tag":116,"props":1762,"children":1763},{"class":118,"line":464},[1764],{"type":33,"tag":116,"props":1765,"children":1766},{"style":144},[1767],{"type":38,"value":1153},{"type":33,"tag":116,"props":1769,"children":1770},{"class":118,"line":472},[1771,1775],{"type":33,"tag":116,"props":1772,"children":1773},{"style":133},[1774],{"type":38,"value":791},{"type":33,"tag":116,"props":1776,"children":1777},{"style":144},[1778],{"type":38,"value":1779}," (\n",{"type":33,"tag":116,"props":1781,"children":1782},{"class":118,"line":481},[1783,1788,1794],{"type":33,"tag":116,"props":1784,"children":1785},{"style":144},[1786],{"type":38,"value":1787},"    \u003C",{"type":33,"tag":116,"props":1789,"children":1791},{"style":1790},"--shiki-default:#85E89D",[1792],{"type":38,"value":1793},"div",{"type":33,"tag":116,"props":1795,"children":1796},{"style":144},[1797],{"type":38,"value":1798},">\n",{"type":33,"tag":116,"props":1800,"children":1801},{"class":118,"line":508},[1802,1807,1812,1817,1821,1825,1829,1834,1838,1843,1848,1852],{"type":33,"tag":116,"props":1803,"children":1804},{"style":144},[1805],{"type":38,"value":1806},"      \u003C",{"type":33,"tag":116,"props":1808,"children":1809},{"style":1790},[1810],{"type":38,"value":1811},"h1",{"type":33,"tag":116,"props":1813,"children":1814},{"style":144},[1815],{"type":38,"value":1816},">{segment.tier ",{"type":33,"tag":116,"props":1818,"children":1819},{"style":133},[1820],{"type":38,"value":753},{"type":33,"tag":116,"props":1822,"children":1823},{"style":300},[1824],{"type":38,"value":758},{"type":33,"tag":116,"props":1826,"children":1827},{"style":133},[1828],{"type":38,"value":763},{"type":33,"tag":116,"props":1830,"children":1831},{"style":300},[1832],{"type":38,"value":1833}," 'Exklusive Kollektion'",{"type":33,"tag":116,"props":1835,"children":1836},{"style":133},[1837],{"type":38,"value":773},{"type":33,"tag":116,"props":1839,"children":1840},{"style":300},[1841],{"type":38,"value":1842}," 'Unsere Produkte'",{"type":33,"tag":116,"props":1844,"children":1845},{"style":144},[1846],{"type":38,"value":1847},"}\u003C\u002F",{"type":33,"tag":116,"props":1849,"children":1850},{"style":1790},[1851],{"type":38,"value":1811},{"type":33,"tag":116,"props":1853,"children":1854},{"style":144},[1855],{"type":38,"value":1798},{"type":33,"tag":116,"props":1857,"children":1858},{"class":118,"line":516},[1859,1863,1868,1872,1877],{"type":33,"tag":116,"props":1860,"children":1861},{"style":144},[1862],{"type":38,"value":1806},{"type":33,"tag":116,"props":1864,"children":1865},{"style":243},[1866],{"type":38,"value":1867},"ProductGrid",{"type":33,"tag":116,"props":1869,"children":1870},{"style":159},[1871],{"type":38,"value":1737},{"type":33,"tag":116,"props":1873,"children":1874},{"style":133},[1875],{"type":38,"value":1876},"=",{"type":33,"tag":116,"props":1878,"children":1879},{"style":144},[1880],{"type":38,"value":1881},"{products} \u002F>\n",{"type":33,"tag":116,"props":1883,"children":1884},{"class":118,"line":539},[1885,1890,1894],{"type":33,"tag":116,"props":1886,"children":1887},{"style":144},[1888],{"type":38,"value":1889},"    \u003C\u002F",{"type":33,"tag":116,"props":1891,"children":1892},{"style":1790},[1893],{"type":38,"value":1793},{"type":33,"tag":116,"props":1895,"children":1896},{"style":144},[1897],{"type":38,"value":1798},{"type":33,"tag":116,"props":1899,"children":1900},{"class":118,"line":548},[1901],{"type":33,"tag":116,"props":1902,"children":1903},{"style":144},[1904],{"type":38,"value":1905},"  );\n",{"type":33,"tag":116,"props":1907,"children":1908},{"class":118,"line":572},[1909],{"type":33,"tag":116,"props":1910,"children":1911},{"style":144},[1912],{"type":38,"value":900},{"type":33,"tag":34,"props":1914,"children":1915},{},[1916],{"type":38,"value":1917},"Vercel Edge TTFB Benchmarks:",{"type":33,"tag":1919,"props":1920,"children":1921},"table",{},[1922,1946],{"type":33,"tag":1923,"props":1924,"children":1925},"thead",{},[1926],{"type":33,"tag":1927,"props":1928,"children":1929},"tr",{},[1930,1936,1941],{"type":33,"tag":1931,"props":1932,"children":1933},"th",{},[1934],{"type":38,"value":1935},"Szenario",{"type":33,"tag":1931,"props":1937,"children":1938},{},[1939],{"type":38,"value":1940},"TTFB (Median)",{"type":33,"tag":1931,"props":1942,"children":1943},{},[1944],{"type":38,"value":1945},"P95",{"type":33,"tag":1947,"props":1948,"children":1949},"tbody",{},[1950,1969,1987],{"type":33,"tag":1927,"props":1951,"children":1952},{},[1953,1959,1964],{"type":33,"tag":1954,"props":1955,"children":1956},"td",{},[1957],{"type":38,"value":1958},"Edge Middleware + KV",{"type":33,"tag":1954,"props":1960,"children":1961},{},[1962],{"type":38,"value":1963},"48ms",{"type":33,"tag":1954,"props":1965,"children":1966},{},[1967],{"type":38,"value":1968},"82ms",{"type":33,"tag":1927,"props":1970,"children":1971},{},[1972,1977,1982],{"type":33,"tag":1954,"props":1973,"children":1974},{},[1975],{"type":38,"value":1976},"Klassisches SSR (us-east-1)",{"type":33,"tag":1954,"props":1978,"children":1979},{},[1980],{"type":38,"value":1981},"220ms",{"type":33,"tag":1954,"props":1983,"children":1984},{},[1985],{"type":38,"value":1986},"380ms",{"type":33,"tag":1927,"props":1988,"children":1989},{},[1990,1995,2000],{"type":33,"tag":1954,"props":1991,"children":1992},{},[1993],{"type":38,"value":1994},"Static + CSR",{"type":33,"tag":1954,"props":1996,"children":1997},{},[1998],{"type":38,"value":1999},"18ms (HTML) + 400ms (JS Hydration)",{"type":33,"tag":1954,"props":2001,"children":2002},{},[2003],{"type":38,"value":2004},"—",{"type":33,"tag":34,"props":2006,"children":2007},{},[2008],{"type":38,"value":2009},"Vorteil von Edge SSR: niedriges TTFB + schnelles FCP + SEO-freundlich (Content in SSR). Bei CSR kommt leeres HTML an, FCP ist hoch.",{"type":33,"tag":41,"props":2011,"children":2013},{"id":2012},"datenschicht-strategie-kv-durable-objects-database-proxy",[2014],{"type":38,"value":2015},"Datenschicht-Strategie: KV, Durable Objects, Database Proxy",{"type":33,"tag":34,"props":2017,"children":2018},{},[2019],{"type":38,"value":2020},"Das kritischste Problem bei Edge SSR ist die Datenschicht. Edge-Nodes sind Nutzern nah, aber die Datenbank sitzt in einer Region (z. B. AWS RDS us-east-1). Jede SSR-Anfrage mit DB-Query bringt Netzwerk-Latenz zurück (100–200ms).",{"type":33,"tag":34,"props":2022,"children":2023},{},[2024],{"type":38,"value":2025},"Lösungsstrategien:",{"type":33,"tag":941,"props":2027,"children":2029},{"id":2028},"_1-kv-cache-first-pattern",[2030],{"type":38,"value":2031},"1. KV Cache-First Pattern",{"type":33,"tag":34,"props":2033,"children":2034},{},[2035],{"type":38,"value":2036},"Häufig gelesene, selten ändernde Daten lagern Sie im KV. Beispiel: Produktkatalog — täglich aktualisiert, aber stündlich 100K Lesezugriffe:",{"type":33,"tag":105,"props":2038,"children":2040},{"className":107,"code":2039,"language":109,"meta":17,"style":17},"\u002F\u002F Cloudflare Workers\nasync function getProduct(sku: string, env: Env): Promise\u003CProduct | null> {\n  \u002F\u002F 1. Aus KV lesen (Sub-ms)\n  const cached = await env.PRODUCTS_KV.get(sku);\n  if (cached) return JSON.parse(cached);\n  \n  \u002F\u002F 2. Cache Miss — aus Origin-DB holen\n  const product = await fetchFromDatabase(sku);\n  \n  \u002F\u002F 3. In KV schreiben (im Hintergrund, blockt Response nicht)\n  env.waitUntil(env.PRODUCTS_KV.put(sku, JSON.stringify(product), { expirationTtl: 3600 }));\n  \n  return product;\n}\n",[2041],{"type":33,"tag":112,"props":2042,"children":2043},{"__ignoreMap":17},[2044,2052,2137,2145,2187,2222,2229,2237,2266,2273,2281,2343,2350,2362],{"type":33,"tag":116,"props":2045,"children":2046},{"class":118,"line":119},[2047],{"type":33,"tag":116,"props":2048,"children":2049},{"style":123},[2050],{"type":38,"value":2051},"\u002F\u002F Cloudflare Workers\n",{"type":33,"tag":116,"props":2053,"children":2054},{"class":118,"line":129},[2055,2060,2064,2069,2073,2078,2082,2086,2090,2094,2098,2102,2106,2110,2114,2118,2123,2128,2133],{"type":33,"tag":116,"props":2056,"children":2057},{"style":133},[2058],{"type":38,"value":2059},"async",{"type":33,"tag":116,"props":2061,"children":2062},{"style":133},[2063],{"type":38,"value":1067},{"type":33,"tag":116,"props":2065,"children":2066},{"style":159},[2067],{"type":38,"value":2068}," getProduct",{"type":33,"tag":116,"props":2070,"children":2071},{"style":144},[2072],{"type":38,"value":167},{"type":33,"tag":116,"props":2074,"children":2075},{"style":170},[2076],{"type":38,"value":2077},"sku",{"type":33,"tag":116,"props":2079,"children":2080},{"style":133},[2081],{"type":38,"value":178},{"type":33,"tag":116,"props":2083,"children":2084},{"style":243},[2085],{"type":38,"value":682},{"type":33,"tag":116,"props":2087,"children":2088},{"style":144},[2089],{"type":38,"value":188},{"type":33,"tag":116,"props":2091,"children":2092},{"style":170},[2093],{"type":38,"value":193},{"type":33,"tag":116,"props":2095,"children":2096},{"style":133},[2097],{"type":38,"value":178},{"type":33,"tag":116,"props":2099,"children":2100},{"style":159},[2101],{"type":38,"value":202},{"type":33,"tag":116,"props":2103,"children":2104},{"style":144},[2105],{"type":38,"value":207},{"type":33,"tag":116,"props":2107,"children":2108},{"style":133},[2109],{"type":38,"value":178},{"type":33,"tag":116,"props":2111,"children":2112},{"style":159},[2113],{"type":38,"value":216},{"type":33,"tag":116,"props":2115,"children":2116},{"style":144},[2117],{"type":38,"value":221},{"type":33,"tag":116,"props":2119,"children":2120},{"style":159},[2121],{"type":38,"value":2122},"Product",{"type":33,"tag":116,"props":2124,"children":2125},{"style":133},[2126],{"type":38,"value":2127}," |",{"type":33,"tag":116,"props":2129,"children":2130},{"style":243},[2131],{"type":38,"value":2132}," null",{"type":33,"tag":116,"props":2134,"children":2135},{"style":144},[2136],{"type":38,"value":231},{"type":33,"tag":116,"props":2138,"children":2139},{"class":118,"line":150},[2140],{"type":33,"tag":116,"props":2141,"children":2142},{"style":123},[2143],{"type":38,"value":2144},"  \u002F\u002F 1. Aus KV lesen (Sub-ms)\n",{"type":33,"tag":116,"props":2146,"children":2147},{"class":118,"line":234},[2148,2152,2157,2161,2165,2169,2174,2178,2182],{"type":33,"tag":116,"props":2149,"children":2150},{"style":133},[2151],{"type":38,"value":734},{"type":33,"tag":116,"props":2153,"children":2154},{"style":243},[2155],{"type":38,"value":2156}," cached",{"type":33,"tag":116,"props":2158,"children":2159},{"style":133},[2160],{"type":38,"value":251},{"type":33,"tag":116,"props":2162,"children":2163},{"style":133},[2164],{"type":38,"value":363},{"type":33,"tag":116,"props":2166,"children":2167},{"style":144},[2168],{"type":38,"value":368},{"type":33,"tag":116,"props":2170,"children":2171},{"style":243},[2172],{"type":38,"value":2173},"PRODUCTS_KV",{"type":33,"tag":116,"props":2175,"children":2176},{"style":144},[2177],{"type":38,"value":378},{"type":33,"tag":116,"props":2179,"children":2180},{"style":159},[2181],{"type":38,"value":293},{"type":33,"tag":116,"props":2183,"children":2184},{"style":144},[2185],{"type":38,"value":2186},"(sku);\n",{"type":33,"tag":116,"props":2188,"children":2189},{"class":118,"line":269},[2190,2195,2200,2205,2209,2213,2217],{"type":33,"tag":116,"props":2191,"children":2192},{"style":133},[2193],{"type":38,"value":2194},"  if",{"type":33,"tag":116,"props":2196,"children":2197},{"style":144},[2198],{"type":38,"value":2199}," (cached) ",{"type":33,"tag":116,"props":2201,"children":2202},{"style":133},[2203],{"type":38,"value":2204},"return",{"type":33,"tag":116,"props":2206,"children":2207},{"style":243},[2208],{"type":38,"value":418},{"type":33,"tag":116,"props":2210,"children":2211},{"style":144},[2212],{"type":38,"value":378},{"type":33,"tag":116,"props":2214,"children":2215},{"style":159},[2216],{"type":38,"value":427},{"type":33,"tag":116,"props":2218,"children":2219},{"style":144},[2220],{"type":38,"value":2221},"(cached);\n",{"type":33,"tag":116,"props":2223,"children":2224},{"class":118,"line":326},[2225],{"type":33,"tag":116,"props":2226,"children":2227},{"style":144},[2228],{"type":38,"value":1153},{"type":33,"tag":116,"props":2230,"children":2231},{"class":118,"line":335},[2232],{"type":33,"tag":116,"props":2233,"children":2234},{"style":123},[2235],{"type":38,"value":2236},"  \u002F\u002F 2. Cache Miss — aus Origin-DB holen\n",{"type":33,"tag":116,"props":2238,"children":2239},{"class":118,"line":344},[2240,2244,2249,2253,2257,2262],{"type":33,"tag":116,"props":2241,"children":2242},{"style":133},[2243],{"type":38,"value":734},{"type":33,"tag":116,"props":2245,"children":2246},{"style":243},[2247],{"type":38,"value":2248}," product",{"type":33,"tag":116,"props":2250,"children":2251},{"style":133},[2252],{"type":38,"value":251},{"type":33,"tag":116,"props":2254,"children":2255},{"style":133},[2256],{"type":38,"value":363},{"type":33,"tag":116,"props":2258,"children":2259},{"style":159},[2260],{"type":38,"value":2261}," fetchFromDatabase",{"type":33,"tag":116,"props":2263,"children":2264},{"style":144},[2265],{"type":38,"value":2186},{"type":33,"tag":116,"props":2267,"children":2268},{"class":118,"line":27},[2269],{"type":33,"tag":116,"props":2270,"children":2271},{"style":144},[2272],{"type":38,"value":1153},{"type":33,"tag":116,"props":2274,"children":2275},{"class":118,"line":464},[2276],{"type":33,"tag":116,"props":2277,"children":2278},{"style":123},[2279],{"type":38,"value":2280},"  \u002F\u002F 3. In KV schreiben (im Hintergrund, blockt Response nicht)\n",{"type":33,"tag":116,"props":2282,"children":2283},{"class":118,"line":472},[2284,2289,2294,2299,2303,2307,2312,2317,2321,2325,2329,2334,2339],{"type":33,"tag":116,"props":2285,"children":2286},{"style":144},[2287],{"type":38,"value":2288},"  env.",{"type":33,"tag":116,"props":2290,"children":2291},{"style":159},[2292],{"type":38,"value":2293},"waitUntil",{"type":33,"tag":116,"props":2295,"children":2296},{"style":144},[2297],{"type":38,"value":2298},"(env.",{"type":33,"tag":116,"props":2300,"children":2301},{"style":243},[2302],{"type":38,"value":2173},{"type":33,"tag":116,"props":2304,"children":2305},{"style":144},[2306],{"type":38,"value":378},{"type":33,"tag":116,"props":2308,"children":2309},{"style":159},[2310],{"type":38,"value":2311},"put",{"type":33,"tag":116,"props":2313,"children":2314},{"style":144},[2315],{"type":38,"value":2316},"(sku, ",{"type":33,"tag":116,"props":2318,"children":2319},{"style":243},[2320],{"type":38,"value":1409},{"type":33,"tag":116,"props":2322,"children":2323},{"style":144},[2324],{"type":38,"value":378},{"type":33,"tag":116,"props":2326,"children":2327},{"style":159},[2328],{"type":38,"value":1418},{"type":33,"tag":116,"props":2330,"children":2331},{"style":144},[2332],{"type":38,"value":2333},"(product), { expirationTtl: ",{"type":33,"tag":116,"props":2335,"children":2336},{"style":243},[2337],{"type":38,"value":2338},"3600",{"type":33,"tag":116,"props":2340,"children":2341},{"style":144},[2342],{"type":38,"value":1332},{"type":33,"tag":116,"props":2344,"children":2345},{"class":118,"line":481},[2346],{"type":33,"tag":116,"props":2347,"children":2348},{"style":144},[2349],{"type":38,"value":1153},{"type":33,"tag":116,"props":2351,"children":2352},{"class":118,"line":508},[2353,2357],{"type":33,"tag":116,"props":2354,"children":2355},{"style":133},[2356],{"type":38,"value":791},{"type":33,"tag":116,"props":2358,"children":2359},{"style":144},[2360],{"type":38,"value":2361}," product;\n",{"type":33,"tag":116,"props":2363,"children":2364},{"class":118,"line":516},[2365],{"type":33,"tag":116,"props":2366,"children":2367},{"style":144},[2368],{"type":38,"value":900},{"type":33,"tag":34,"props":2370,"children":2371},{},[2372],{"type":38,"value":2373},"Mit diesem Pattern und Cache Hit Rate >95% erreichen Sie 40ms TTFB vom Edge. Bei Cache Miss steigt es auf 200ms, aber der Durchschnitt bleibt bei 60ms.",{"type":33,"tag":941,"props":2375,"children":2377},{"id":2376},"_2-durable-objects-strongly-consistent-state",[2378],{"type":38,"value":2379},"2. Durable Objects (Strongly Consistent State)",{"type":33,"tag":34,"props":2381,"children":2382},{},[2383],{"type":38,"value":2384},"Für Operationen, die strongly consistent State benötigen (Warenkorb, Checkout), nutzen Sie Durable Objects. Jede Nutzer-Instanz lebt auf einem Edge-Node (Sticky Routing). Writes zu dieser Instanz sind sofort lesbar:",{"type":33,"tag":105,"props":2386,"children":2388},{"className":107,"code":2387,"language":109,"meta":17,"style":17},"\u002F\u002F cart-durable-object.ts\nexport class Cart {\n  state: DurableObjectState;\n  items: CartItem[] = [];\n  \n  constructor(state: DurableObjectState) {\n    this.state = state;\n    this.state.blockConcurrencyWhile(async () => {\n      this.items = await this.state.storage.get('items') || [];\n    });\n  }\n  \n  async fetch(request: Request): Promise\u003CResponse> {\n    const url = new URL(request.url);\n    if (url.pathname === '\u002Fadd') {\n      const item = await request.json();\n      this.items.push(item);\n      await this.state.storage.put('items', this.items);\n      return new Response(JSON.stringify(this.items));\n    }\n    return new Response(JSON.stringify(this.items));\n  }\n}\n",[2389],{"type":33,"tag":112,"props":2390,"children":2391},{"__ignoreMap":17},[2392,2400,2421,2442,2473,2480,2509,2531,2569,2625,2632,2639,2646,2697,2724,2750,2784,2806,2848,2893,2901,2944,2951],{"type":33,"tag":116,"props":2393,"children":2394},{"class":118,"line":119},[2395],{"type":33,"tag":116,"props":2396,"children":2397},{"style":123},[2398],{"type":38,"value":2399},"\u002F\u002F cart-durable-object.ts\n",{"type":33,"tag":116,"props":2401,"children":2402},{"class":118,"line":129},[2403,2407,2412,2417],{"type":33,"tag":116,"props":2404,"children":2405},{"style":133},[2406],{"type":38,"value":136},{"type":33,"tag":116,"props":2408,"children":2409},{"style":133},[2410],{"type":38,"value":2411}," class",{"type":33,"tag":116,"props":2413,"children":2414},{"style":159},[2415],{"type":38,"value":2416}," Cart",{"type":33,"tag":116,"props":2418,"children":2419},{"style":144},[2420],{"type":38,"value":147},{"type":33,"tag":116,"props":2422,"children":2423},{"class":118,"line":150},[2424,2429,2433,2438],{"type":33,"tag":116,"props":2425,"children":2426},{"style":170},[2427],{"type":38,"value":2428},"  state",{"type":33,"tag":116,"props":2430,"children":2431},{"style":133},[2432],{"type":38,"value":178},{"type":33,"tag":116,"props":2434,"children":2435},{"style":159},[2436],{"type":38,"value":2437}," DurableObjectState",{"type":33,"tag":116,"props":2439,"children":2440},{"style":144},[2441],{"type":38,"value":323},{"type":33,"tag":116,"props":2443,"children":2444},{"class":118,"line":234},[2445,2450,2454,2459,2464,2468],{"type":33,"tag":116,"props":2446,"children":2447},{"style":170},[2448],{"type":38,"value":2449},"  items",{"type":33,"tag":116,"props":2451,"children":2452},{"style":133},[2453],{"type":38,"value":178},{"type":33,"tag":116,"props":2455,"children":2456},{"style":159},[2457],{"type":38,"value":2458}," CartItem",{"type":33,"tag":116,"props":2460,"children":2461},{"style":144},[2462],{"type":38,"value":2463},"[] ",{"type":33,"tag":116,"props":2465,"children":2466},{"style":133},[2467],{"type":38,"value":1876},{"type":33,"tag":116,"props":2469,"children":2470},{"style":144},[2471],{"type":38,"value":2472}," [];\n",{"type":33,"tag":116,"props":2474,"children":2475},{"class":118,"line":269},[2476],{"type":33,"tag":116,"props":2477,"children":2478},{"style":144},[2479],{"type":38,"value":1153},{"type":33,"tag":116,"props":2481,"children":2482},{"class":118,"line":326},[2483,2488,2492,2497,2501,2505],{"type":33,"tag":116,"props":2484,"children":2485},{"style":133},[2486],{"type":38,"value":2487},"  constructor",{"type":33,"tag":116,"props":2489,"children":2490},{"style":144},[2491],{"type":38,"value":167},{"type":33,"tag":116,"props":2493,"children":2494},{"style":170},[2495],{"type":38,"value":2496},"state",{"type":33,"tag":116,"props":2498,"children":2499},{"style":133},[2500],{"type":38,"value":178},{"type":33,"tag":116,"props":2502,"children":2503},{"style":159},[2504],{"type":38,"value":2437},{"type":33,"tag":116,"props":2506,"children":2507},{"style":144},[2508],{"type":38,"value":1095},{"type":33,"tag":116,"props":2510,"children":2511},{"class":118,"line":335},[2512,2517,2522,2526],{"type":33,"tag":116,"props":2513,"children":2514},{"style":243},[2515],{"type":38,"value":2516},"    this",{"type":33,"tag":116,"props":2518,"children":2519},{"style":144},[2520],{"type":38,"value":2521},".state ",{"type":33,"tag":116,"props":2523,"children":2524},{"style":133},[2525],{"type":38,"value":1876},{"type":33,"tag":116,"props":2527,"children":2528},{"style":144},[2529],{"type":38,"value":2530}," state;\n",{"type":33,"tag":116,"props":2532,"children":2533},{"class":118,"line":344},[2534,2538,2543,2548,2552,2556,2561,2565],{"type":33,"tag":116,"props":2535,"children":2536},{"style":243},[2537],{"type":38,"value":2516},{"type":33,"tag":116,"props":2539,"children":2540},{"style":144},[2541],{"type":38,"value":2542},".state.",{"type":33,"tag":116,"props":2544,"children":2545},{"style":159},[2546],{"type":38,"value":2547},"blockConcurrencyWhile",{"type":33,"tag":116,"props":2549,"children":2550},{"style":144},[2551],{"type":38,"value":167},{"type":33,"tag":116,"props":2553,"children":2554},{"style":133},[2555],{"type":38,"value":2059},{"type":33,"tag":116,"props":2557,"children":2558},{"style":144},[2559],{"type":38,"value":2560}," () ",{"type":33,"tag":116,"props":2562,"children":2563},{"style":133},[2564],{"type":38,"value":1318},{"type":33,"tag":116,"props":2566,"children":2567},{"style":144},[2568],{"type":38,"value":147},{"type":33,"tag":116,"props":2570,"children":2571},{"class":118,"line":27},[2572,2577,2582,2586,2590,2595,2600,2604,2608,2613,2617,2621],{"type":33,"tag":116,"props":2573,"children":2574},{"style":243},[2575],{"type":38,"value":2576},"      this",{"type":33,"tag":116,"props":2578,"children":2579},{"style":144},[2580],{"type":38,"value":2581},".items ",{"type":33,"tag":116,"props":2583,"children":2584},{"style":133},[2585],{"type":38,"value":1876},{"type":33,"tag":116,"props":2587,"children":2588},{"style":133},[2589],{"type":38,"value":363},{"type":33,"tag":116,"props":2591,"children":2592},{"style":243},[2593],{"type":38,"value":2594}," this",{"type":33,"tag":116,"props":2596,"children":2597},{"style":144},[2598],{"type":38,"value":2599},".state.storage.",{"type":33,"tag":116,"props":2601,"children":2602},{"style":159},[2603],{"type":38,"value":293},{"type":33,"tag":116,"props":2605,"children":2606},{"style":144},[2607],{"type":38,"value":167},{"type":33,"tag":116,"props":2609,"children":2610},{"style":300},[2611],{"type":38,"value":2612},"'items'",{"type":33,"tag":116,"props":2614,"children":2615},{"style":144},[2616],{"type":38,"value":308},{"type":33,"tag":116,"props":2618,"children":2619},{"style":133},[2620],{"type":38,"value":313},{"type":33,"tag":116,"props":2622,"children":2623},{"style":144},[2624],{"type":38,"value":2472},{"type":33,"tag":116,"props":2626,"children":2627},{"class":118,"line":464},[2628],{"type":33,"tag":116,"props":2629,"children":2630},{"style":144},[2631],{"type":38,"value":623},{"type":33,"tag":116,"props":2633,"children":2634},{"class":118,"line":472},[2635],{"type":33,"tag":116,"props":2636,"children":2637},{"style":144},[2638],{"type":38,"value":632},{"type":33,"tag":116,"props":2640,"children":2641},{"class":118,"line":481},[2642],{"type":33,"tag":116,"props":2643,"children":2644},{"style":144},[2645],{"type":38,"value":1153},{"type":33,"tag":116,"props":2647,"children":2648},{"class":118,"line":508},[2649,2653,2657,2661,2665,2669,2673,2677,2681,2685,2689,2693],{"type":33,"tag":116,"props":2650,"children":2651},{"style":133},[2652],{"type":38,"value":156},{"type":33,"tag":116,"props":2654,"children":2655},{"style":159},[2656],{"type":38,"value":162},{"type":33,"tag":116,"props":2658,"children":2659},{"style":144},[2660],{"type":38,"value":167},{"type":33,"tag":116,"props":2662,"children":2663},{"style":170},[2664],{"type":38,"value":173},{"type":33,"tag":116,"props":2666,"children":2667},{"style":133},[2668],{"type":38,"value":178},{"type":33,"tag":116,"props":2670,"children":2671},{"style":159},[2672],{"type":38,"value":183},{"type":33,"tag":116,"props":2674,"children":2675},{"style":144},[2676],{"type":38,"value":207},{"type":33,"tag":116,"props":2678,"children":2679},{"style":133},[2680],{"type":38,"value":178},{"type":33,"tag":116,"props":2682,"children":2683},{"style":159},[2684],{"type":38,"value":216},{"type":33,"tag":116,"props":2686,"children":2687},{"style":144},[2688],{"type":38,"value":221},{"type":33,"tag":116,"props":2690,"children":2691},{"style":159},[2692],{"type":38,"value":226},{"type":33,"tag":116,"props":2694,"children":2695},{"style":144},[2696],{"type":38,"value":231},{"type":33,"tag":116,"props":2698,"children":2699},{"class":118,"line":516},[2700,2704,2708,2712,2716,2720],{"type":33,"tag":116,"props":2701,"children":2702},{"style":133},[2703],{"type":38,"value":240},{"type":33,"tag":116,"props":2705,"children":2706},{"style":243},[2707],{"type":38,"value":246},{"type":33,"tag":116,"props":2709,"children":2710},{"style":133},[2711],{"type":38,"value":251},{"type":33,"tag":116,"props":2713,"children":2714},{"style":133},[2715],{"type":38,"value":256},{"type":33,"tag":116,"props":2717,"children":2718},{"style":159},[2719],{"type":38,"value":261},{"type":33,"tag":116,"props":2721,"children":2722},{"style":144},[2723],{"type":38,"value":266},{"type":33,"tag":116,"props":2725,"children":2726},{"class":118,"line":539},[2727,2732,2737,2741,2746],{"type":33,"tag":116,"props":2728,"children":2729},{"style":133},[2730],{"type":38,"value":2731},"    if",{"type":33,"tag":116,"props":2733,"children":2734},{"style":144},[2735],{"type":38,"value":2736}," (url.pathname ",{"type":33,"tag":116,"props":2738,"children":2739},{"style":133},[2740],{"type":38,"value":753},{"type":33,"tag":116,"props":2742,"children":2743},{"style":300},[2744],{"type":38,"value":2745}," '\u002Fadd'",{"type":33,"tag":116,"props":2747,"children":2748},{"style":144},[2749],{"type":38,"value":1095},{"type":33,"tag":116,"props":2751,"children":2752},{"class":118,"line":548},[2753,2758,2763,2767,2771,2776,2780],{"type":33,"tag":116,"props":2754,"children":2755},{"style":133},[2756],{"type":38,"value":2757},"      const",{"type":33,"tag":116,"props":2759,"children":2760},{"style":243},[2761],{"type":38,"value":2762}," item",{"type":33,"tag":116,"props":2764,"children":2765},{"style":133},[2766],{"type":38,"value":251},{"type":33,"tag":116,"props":2768,"children":2769},{"style":133},[2770],{"type":38,"value":363},{"type":33,"tag":116,"props":2772,"children":2773},{"style":144},[2774],{"type":38,"value":2775}," request.",{"type":33,"tag":116,"props":2777,"children":2778},{"style":159},[2779],{"type":38,"value":1298},{"type":33,"tag":116,"props":2781,"children":2782},{"style":144},[2783],{"type":38,"value":1378},{"type":33,"tag":116,"props":2785,"children":2786},{"class":118,"line":572},[2787,2791,2796,2801],{"type":33,"tag":116,"props":2788,"children":2789},{"style":243},[2790],{"type":38,"value":2576},{"type":33,"tag":116,"props":2792,"children":2793},{"style":144},[2794],{"type":38,"value":2795},".items.",{"type":33,"tag":116,"props":2797,"children":2798},{"style":159},[2799],{"type":38,"value":2800},"push",{"type":33,"tag":116,"props":2802,"children":2803},{"style":144},[2804],{"type":38,"value":2805},"(item);\n",{"type":33,"tag":116,"props":2807,"children":2808},{"class":118,"line":594},[2809,2814,2818,2822,2826,2830,2834,2838,2843],{"type":33,"tag":116,"props":2810,"children":2811},{"style":133},[2812],{"type":38,"value":2813},"      await",{"type":33,"tag":116,"props":2815,"children":2816},{"style":243},[2817],{"type":38,"value":2594},{"type":33,"tag":116,"props":2819,"children":2820},{"style":144},[2821],{"type":38,"value":2599},{"type":33,"tag":116,"props":2823,"children":2824},{"style":159},[2825],{"type":38,"value":2311},{"type":33,"tag":116,"props":2827,"children":2828},{"style":144},[2829],{"type":38,"value":167},{"type":33,"tag":116,"props":2831,"children":2832},{"style":300},[2833],{"type":38,"value":2612},{"type":33,"tag":116,"props":2835,"children":2836},{"style":144},[2837],{"type":38,"value":188},{"type":33,"tag":116,"props":2839,"children":2840},{"style":243},[2841],{"type":38,"value":2842},"this",{"type":33,"tag":116,"props":2844,"children":2845},{"style":144},[2846],{"type":38,"value":2847},".items);\n",{"type":33,"tag":116,"props":2849,"children":2850},{"class":118,"line":608},[2851,2856,2860,2864,2868,2872,2876,2880,2884,2888],{"type":33,"tag":116,"props":2852,"children":2853},{"style":133},[2854],{"type":38,"value":2855},"      return",{"type":33,"tag":116,"props":2857,"children":2858},{"style":133},[2859],{"type":38,"value":256},{"type":33,"tag":116,"props":2861,"children":2862},{"style":159},[2863],{"type":38,"value":531},{"type":33,"tag":116,"props":2865,"children":2866},{"style":144},[2867],{"type":38,"value":167},{"type":33,"tag":116,"props":2869,"children":2870},{"style":243},[2871],{"type":38,"value":1409},{"type":33,"tag":116,"props":2873,"children":2874},{"style":144},[2875],{"type":38,"value":378},{"type":33,"tag":116,"props":2877,"children":2878},{"style":159},[2879],{"type":38,"value":1418},{"type":33,"tag":116,"props":2881,"children":2882},{"style":144},[2883],{"type":38,"value":167},{"type":33,"tag":116,"props":2885,"children":2886},{"style":243},[2887],{"type":38,"value":2842},{"type":33,"tag":116,"props":2889,"children":2890},{"style":144},[2891],{"type":38,"value":2892},".items));\n",{"type":33,"tag":116,"props":2894,"children":2895},{"class":118,"line":617},[2896],{"type":33,"tag":116,"props":2897,"children":2898},{"style":144},[2899],{"type":38,"value":2900},"    }\n",{"type":33,"tag":116,"props":2902,"children":2903},{"class":118,"line":626},[2904,2908,2912,2916,2920,2924,2928,2932,2936,2940],{"type":33,"tag":116,"props":2905,"children":2906},{"style":133},[2907],{"type":38,"value":522},{"type":33,"tag":116,"props":2909,"children":2910},{"style":133},[2911],{"type":38,"value":256},{"type":33,"tag":116,"props":2913,"children":2914},{"style":159},[2915],{"type":38,"value":531},{"type":33,"tag":116,"props":2917,"children":2918},{"style":144},[2919],{"type":38,"value":167},{"type":33,"tag":116,"props":2921,"children":2922},{"style":243},[2923],{"type":38,"value":1409},{"type":33,"tag":116,"props":2925,"children":2926},{"style":144},[2927],{"type":38,"value":378},{"type":33,"tag":116,"props":2929,"children":2930},{"style":159},[2931],{"type":38,"value":1418},{"type":33,"tag":116,"props":2933,"children":2934},{"style":144},[2935],{"type":38,"value":167},{"type":33,"tag":116,"props":2937,"children":2938},{"style":243},[2939],{"type":38,"value":2842},{"type":33,"tag":116,"props":2941,"children":2942},{"style":144},[2943],{"type":38,"value":2892},{"type":33,"tag":116,"props":2945,"children":2946},{"class":118,"line":635},[2947],{"type":33,"tag":116,"props":2948,"children":2949},{"style":144},[2950],{"type":38,"value":632},{"type":33,"tag":116,"props":2952,"children":2953},{"class":118,"line":644},[2954],{"type":33,"tag":116,"props":2955,"children":2956},{"style":144},[2957],{"type":38,"value":900},{"type":33,"tag":34,"props":2959,"children":2960},{},[2961],{"type":38,"value":2962},"Trade-off: Durable Objects werden nicht global verteilt — wenn ein Nutzer aus Tokio anfragt, das Object aber in us-east-1 lebt, beträgt die Latenz 150ms+. Deshalb bevorzugen wir KV außerhalb von Checkout.",{"type":33,"tag":941,"props":2964,"children":2966},{"id":2965},"_3-database-proxy-planetscale-neon-serverless",[2967],{"type":38,"value":2968},"3. Database Proxy (PlanetScale, Neon Serverless)",{"type":33,"tag":34,"props":2970,"children":2971},{},[2972],{"type":38,"value":2973},"Serverless-Datenbanken wie PlanetScale und Neon bieten HTTP-APIs, die Edge-kompatibel sind. Edge-Funktionen können die API direkt aufrufen:",{"type":33,"tag":105,"props":2975,"children":2977},{"className":107,"code":2976,"language":109,"meta":17,"style":17},"\u002F\u002F Neon Serverless mit Edge-Query\nimport { neon } from '@neondatabase\u002Fserverless';\n\nconst sql = neon(process.env.DATABASE_URL);\n\nexport default async function handler(req: Request) {\n  const products = await sql`SELECT * FROM products WHERE featured = true LIMIT 10`;\n  return new Response(JSON.stringify(products));\n}\n",[2978],{"type":33,"tag":112,"props":2979,"children":2980},{"__ignoreMap":17},[2981,2989,3014,3021,3057,3064,3108,3140,3176],{"type":33,"tag":116,"props":2982,"children":2983},{"class":118,"line":119},[2984],{"type":33,"tag":116,"props":2985,"children":2986},{"style":123},[2987],{"type":38,"value":2988},"\u002F\u002F Neon Serverless mit Edge-Query\n",{"type":33,"tag":116,"props":2990,"children":2991},{"class":118,"line":129},[2992,2996,3001,3005,3010],{"type":33,"tag":116,"props":2993,"children":2994},{"style":133},[2995],{"type":38,"value":1024},{"type":33,"tag":116,"props":2997,"children":2998},{"style":144},[2999],{"type":38,"value":3000}," { neon } ",{"type":33,"tag":116,"props":3002,"children":3003},{"style":133},[3004],{"type":38,"value":1034},{"type":33,"tag":116,"props":3006,"children":3007},{"style":300},[3008],{"type":38,"value":3009}," '@neondatabase\u002Fserverless'",{"type":33,"tag":116,"props":3011,"children":3012},{"style":144},[3013],{"type":38,"value":323},{"type":33,"tag":116,"props":3015,"children":3016},{"class":118,"line":150},[3017],{"type":33,"tag":116,"props":3018,"children":3019},{"emptyLinePlaceholder":648},[3020],{"type":38,"value":651},{"type":33,"tag":116,"props":3022,"children":3023},{"class":118,"line":234},[3024,3029,3034,3038,3043,3048,3053],{"type":33,"tag":116,"props":3025,"children":3026},{"style":133},[3027],{"type":38,"value":3028},"const",{"type":33,"tag":116,"props":3030,"children":3031},{"style":243},[3032],{"type":38,"value":3033}," sql",{"type":33,"tag":116,"props":3035,"children":3036},{"style":133},[3037],{"type":38,"value":251},{"type":33,"tag":116,"props":3039,"children":3040},{"style":159},[3041],{"type":38,"value":3042}," neon",{"type":33,"tag":116,"props":3044,"children":3045},{"style":144},[3046],{"type":38,"value":3047},"(process.env.",{"type":33,"tag":116,"props":3049,"children":3050},{"style":243},[3051],{"type":38,"value":3052},"DATABASE_URL",{"type":33,"tag":116,"props":3054,"children":3055},{"style":144},[3056],{"type":38,"value":1661},{"type":33,"tag":116,"props":3058,"children":3059},{"class":118,"line":269},[3060],{"type":33,"tag":116,"props":3061,"children":3062},{"emptyLinePlaceholder":648},[3063],{"type":38,"value":651},{"type":33,"tag":116,"props":3065,"children":3066},{"class":118,"line":326},[3067,3071,3075,3079,3083,3088,3092,3096,3100,3104],{"type":33,"tag":116,"props":3068,"children":3069},{"style":133},[3070],{"type":38,"value":136},{"type":33,"tag":116,"props":3072,"children":3073},{"style":133},[3074],{"type":38,"value":141},{"type":33,"tag":116,"props":3076,"children":3077},{"style":133},[3078],{"type":38,"value":1062},{"type":33,"tag":116,"props":3080,"children":3081},{"style":133},[3082],{"type":38,"value":1067},{"type":33,"tag":116,"props":3084,"children":3085},{"style":159},[3086],{"type":38,"value":3087}," handler",{"type":33,"tag":116,"props":3089,"children":3090},{"style":144},[3091],{"type":38,"value":167},{"type":33,"tag":116,"props":3093,"children":3094},{"style":170},[3095],{"type":38,"value":1081},{"type":33,"tag":116,"props":3097,"children":3098},{"style":133},[3099],{"type":38,"value":178},{"type":33,"tag":116,"props":3101,"children":3102},{"style":159},[3103],{"type":38,"value":183},{"type":33,"tag":116,"props":3105,"children":3106},{"style":144},[3107],{"type":38,"value":1095},{"type":33,"tag":116,"props":3109,"children":3110},{"class":118,"line":335},[3111,3115,3119,3123,3127,3131,3136],{"type":33,"tag":116,"props":3112,"children":3113},{"style":133},[3114],{"type":38,"value":734},{"type":33,"tag":116,"props":3116,"children":3117},{"style":243},[3118],{"type":38,"value":1737},{"type":33,"tag":116,"props":3120,"children":3121},{"style":133},[3122],{"type":38,"value":251},{"type":33,"tag":116,"props":3124,"children":3125},{"style":133},[3126],{"type":38,"value":363},{"type":33,"tag":116,"props":3128,"children":3129},{"style":159},[3130],{"type":38,"value":3033},{"type":33,"tag":116,"props":3132,"children":3133},{"style":300},[3134],{"type":38,"value":3135},"`SELECT * FROM products WHERE featured = true LIMIT 10`",{"type":33,"tag":116,"props":3137,"children":3138},{"style":144},[3139],{"type":38,"value":323},{"type":33,"tag":116,"props":3141,"children":3142},{"class":118,"line":344},[3143,3147,3151,3155,3159,3163,3167,3171],{"type":33,"tag":116,"props":3144,"children":3145},{"style":133},[3146],{"type":38,"value":791},{"type":33,"tag":116,"props":3148,"children":3149},{"style":133},[3150],{"type":38,"value":256},{"type":33,"tag":116,"props":3152,"children":3153},{"style":159},[3154],{"type":38,"value":531},{"type":33,"tag":116,"props":3156,"children":3157},{"style":144},[3158],{"type":38,"value":167},{"type":33,"tag":116,"props":3160,"children":3161},{"style":243},[3162],{"type":38,"value":1409},{"type":33,"tag":116,"props":3164,"children":3165},{"style":144},[3166],{"type":38,"value":378},{"type":33,"tag":116,"props":3168,"children":3169},{"style":159},[3170],{"type":38,"value":1418},{"type":33,"tag":116,"props":3172,"children":3173},{"style":144},[3174],{"type":38,"value":3175},"(products));\n",{"type":33,"tag":116,"props":3177,"children":3178},{"class":118,"line":27},[3179],{"type":33,"tag":116,"props":3180,"children":3181},{"style":144},[3182],{"type":38,"value":900},{"type":33,"tag":34,"props":3184,"children":3185},{},[3186],{"type":38,"value":3187},"Latenz: 40–80ms (DB-Proxy auf Edge-Nodes). Statt klassischer Postgres-Verbindung (TCP) läuft alles über HTTP, kompatibel mit Edge-Runtimes.",{"type":33,"tag":41,"props":3189,"children":3191},{"id":3190},"bundle-größe-und-cold-start-realität",[3192],{"type":38,"value":3193},"Bundle-Größe und Cold-Start-Realität",{"type":33,"tag":34,"props":3195,"children":3196},{},[3197],{"type":38,"value":3198},"Bei Edge-Runtimes ist Bundle-Größe kritisch — Cloudflare Workers 1MB Limit, Vercel Edge 1MB komprimiert. Mit React SSR erreichen Sie leicht 800KB. Lösungen:",{"type":33,"tag":58,"props":3200,"children":3201},{},[3202,3212,3222],{"type":33,"tag":62,"props":3203,"children":3204},{},[3205,3210],{"type":33,"tag":66,"props":3206,"children":3207},{},[3208],{"type":38,"value":3209},"Streaming SSR:",{"type":38,"value":3211}," HTML in Chunks senden, nicht auf ganzen Component Tree warten, TTFB senken",{"type":33,"tag":62,"props":3213,"children":3214},{},[3215,3220],{"type":33,"tag":66,"props":3216,"children":3217},{},[3218],{"type":38,"value":3219},"Selective Hydration:",{"type":38,"value":3221}," Nur interaktive Components auf Client hydrisieren",{"type":33,"tag":62,"props":3223,"children":3224},{},[3225,3230],{"type":33,"tag":66,"props":3226,"children":3227},{},[3228],{"type":38,"value":3229},"Code Splitting:",{"type":38,"value":3231}," Separate Bundle pro Route (Next.js macht das automatisch)",{"type":33,"tag":34,"props":3233,"children":3234},{},[3235],{"type":38,"value":3236},"Cold-Start-Realität: Cloudflare Workers 0ms (Isolate-Modell), Vercel Edge 50–150ms (bei globaler Deployment erste Anfrage). In Production schließt sich die Lücke, da Vercel Warm-Instance-Pools vorhält.",{"type":33,"tag":41,"props":3238,"children":3240},{"id":3239},"die-nächsten-12-monate-webassembly-und-computeedge",[3241],{"type":38,"value":3242},"Die nächsten 12 Monate: WebAssembly und Compute@Edge",{"type":33,"tag":34,"props":3244,"children":3245},{},[3246],{"type":38,"value":3247},"Die nächste Stufe von Edge SSR ist WebAssembly. Sie schreiben SSR-Engine in Rust\u002FGo, kompilieren zu WASM, und lassen sie auf Edge laufen — Bundle 200KB, Compute 5–10ms. Shopifys Hydrogen 2.0 geht diesen Weg.",{"type":33,"tag":34,"props":3249,"children":3250},{},[3251,3253,3260],{"type":38,"value":3252},"Fastly Compute@Edge und Cloudflare WASM-Support sind 2026 produktionsreif. Wir testen Hydrogen + WASM im Rahmen unserer ",{"type":33,"tag":981,"props":3254,"children":3257},{"href":3255,"rel":3256},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Fshopify",[985],[3258],{"type":38,"value":3259},"Shopify-Services",{"type":38,"value":3261}," — erste Benchmarks zeigen 28ms TTFB.",{"type":33,"tag":3263,"props":3264,"children":3265},"hr",{},[],{"type":33,"tag":34,"props":3267,"children":3268},{},[3269],{"type":38,"value":3270},"Edge SSR verspricht 40ms Latenz, passt aber nicht zu jedem Use Case. Projekte mit Echtzeit-State (Warenkorb, Chat), hohem DB-Query-Volumen oder engen Backend-Dependencies laufen mit klassischem SSR + CDN-Caching effizienter. Für Content-Heavy, Personalisierung-Anforderungen und globalen Traffic (E-Commerce, Medien, SaaS-Landing) ist Edge SSR die richtige Architektur. Wenn Sie Trade-offs verstehen und die Datenschicht mit KV-First-Pattern aufbauen, erreichen Sie echte 40ms TTFB.",{"type":33,"tag":3272,"props":3273,"children":3274},"style",{},[3275],{"type":38,"value":3276},"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":17,"searchDepth":150,"depth":150,"links":3278},[3279,3280,3283,3284,3289,3290],{"id":43,"depth":129,"text":46},{"id":90,"depth":129,"text":93,"children":3281},[3282],{"id":943,"depth":150,"text":946},{"id":993,"depth":129,"text":996},{"id":2012,"depth":129,"text":2015,"children":3285},[3286,3287,3288],{"id":2028,"depth":150,"text":2031},{"id":2376,"depth":150,"text":2379},{"id":2965,"depth":150,"text":2968},{"id":3190,"depth":129,"text":3193},{"id":3239,"depth":129,"text":3242},"markdown","content:de:tech:edge-ssr-personalisierung-40ms-latenz.md","content","de\u002Ftech\u002Fedge-ssr-personalisierung-40ms-latenz.md","de\u002Ftech\u002Fedge-ssr-personalisierung-40ms-latenz","md",1782079497165]