1"use strict";(self.webpackChunkarkhai_website=self.webpackChunkarkhai_website||[]).push([[5149],{28453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>a});var t=r(96540);const s={},i=t.createContext(s);function o(e){const n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:n},e.children)}},82527:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"networking/reqrep_pattern","title":"Reqrep Pattern","description":"Overview","source":"@site/vendor/cgt-docusaurus/docs/networking/02_reqrep_pattern.md","sourceDirName":"networking","slug":"/networking/reqrep_pattern","permalink":"/docs/modular-markets/networking/reqrep_pattern","draft":false,"unlisted":false,"editUrl":"https://github.com/arkhai-io/cgt/edit/main/cgt-docusaurus/docs/networking/02_reqrep_pattern.md","tags":[],"version":"current","sidebarPosition":51,"frontMatter":{"title":"Reqrep Pattern","sidebar_position":51},"sidebar":"docs","previous":{"title":"Pubsub Pattern","permalink":"/docs/modular-markets/networking/pubsub_pattern"},"next":{"title":"Router Dealer Pattern","permalink":"/docs/modular-markets/networking/router_dealer_pattern"}}');var s=r(74848),i=r(28453);const o={title:"Reqrep Pattern",sidebar_position:51},a="Reqrep Pattern",l={},c=[{value:"Overview",id:"overview",level:2},{value:"Diagram",id:"diagram",level:2},{value:"Key Concepts",id:"key-concepts",level:2},{value:"Related Topics",id:"related-topics",level:2}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",header:"header",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"reqrep-pattern",children:"Reqrep Pattern"})}),"\n",(0,s.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,s.jsx)(n.p,{children:"This section visualizes the reqrep pattern using compositional game theory."}),"\n",(0,s.jsx)(n.h2,{id:"diagram",children:"Diagram"}),"\n",(0,s.jsx)(n.mermaid,{value:'graph TB\n %% Req/Rep Pattern - Synchronous Request-Response\n\n %% Clients (Blue)\n C1[Client 1]:::client\n C2[Client 2]:::client\n C3[Client 3]:::client\n\n %% Servers (Green)\n S1[Server 1]:::server\n S2[Server 2]:::server\n S3[Server 3]:::server\n\n %% Request-Reply connections\n C1 <--\x3e|"request \u2194 reply"| S1\n C2 <--\x3e|"request \u2194 reply"| S2\n C3 <--\x3e|"request \u2194 reply"| S3\n\n %% Additional connections showing many-to-one\n C1 -.->|"alternate request"| S2\n C2 -.->|"alternate request"| S1\n\n %% Blocking indicator\n subgraph Blocking["Synchronous Blocking"]\n direction LR\n BC[Client sends request]:::client\n BS[Server processes]:::server\n BC --\x3e|blocks waiting| BS\n BS --\x3e|sends reply| BC\n end\n\n %% Styling\n classDef client fill:none,stroke:#4A90FF,stroke-width:2px,color:white\n classDef server fill:none,stroke:#4A90FF,stroke-width:2px,color:white\n\n %% Legend\n subgraph Legend[" "]\n direction TB\n LC[Client/Requester]:::client\n LS[Server/Replier]:::server\n\n LC -.->|"1. Request (blocks)"| LS\n LS -.->|"2. Reply (unblocks)"| LC\n end\n'}),"\n",(0,s.jsx)(n.h2,{id:"key-concepts",children:"Key Concepts"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsxs)(n.em,{children:["Documentation to be added - see ",(0,s.jsx)(n.a,{href:"/docs/modular-markets/fundamentals/",children:"CGT Fundamentals"})," for theoretical background."]})}),"\n",(0,s.jsx)(n.h2,{id:"related-topics",children:"Related Topics"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/modular-markets/fundamentals/",children:"CGT Fundamentals"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/modular-markets/patterns/",children:"Game Patterns"})}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.