<!-- CANARY: REQ=REQ-DOCS-001; FEATURE="Docs"; ASPECT=Documentation; STATUS=TESTED; OWNER=docs; UPDATED=2026-01-15 -->
<p>Connection management in Geode encompasses establishing secure connections, managing connection pools, handling authentication, and optimizing network performance. Geode uses modern QUIC transport with TLS 1.3 encryption by default, providing secure and efficient connections for all client operations.</p>
<h3 id="connection-architecture" class="position-relative d-flex align-items-center group">
<span>Connection Architecture</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-architecture"
aria-haspopup="dialog"
aria-label="Share link: Connection Architecture">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3><div id="headingShareModal" class="heading-share-modal" role="dialog" aria-modal="true" aria-labelledby="headingShareTitle" hidden>
<div class="hsm-dialog" role="document">
<div class="hsm-header">
<h2 id="headingShareTitle" class="h6 mb-0 fw-bold">Share this section</h2>
<button type="button" class="hsm-close" aria-label="Close">
<i class="fa-solid fa-xmark"></i>
</button>
</div>
<div class="hsm-body">
<label for="headingShareInput" class="form-label small text-muted mb-1 text-uppercase fw-bold" style="font-size: 0.7rem; letter-spacing: 0.5px;">Permalink</label>
<div class="input-group mb-4 hsm-url-group">
<input id="headingShareInput" type="text" class="form-control font-monospace" readonly aria-readonly="true" style="font-size: 0.85rem;" />
<button class="btn btn-primary hsm-copy" type="button" aria-label="Copy" title="Copy">
<i class="fa-duotone fa-clipboard" aria-hidden="true"></i>
</button>
</div>
<div class="small fw-bold mb-2 text-muted text-uppercase" style="font-size: 0.7rem; letter-spacing: 0.5px;">Share via</div>
<div class="hsm-share-grid">
<a id="share-twitter" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer">
<i class="fa-brands fa-twitter me-2"></i>Twitter
</a>
<a id="share-linkedin" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer">
<i class="fa-brands fa-linkedin me-2"></i>LinkedIn
</a>
<a id="share-facebook" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer">
<i class="fa-brands fa-facebook me-2"></i>Facebook
</a>
</div>
</div>
</div>
</div>
<style>
.heading-share-modal {
position: fixed;
inset: 0;
display: flex;
justify-content: center;
align-items: center;
background: rgba(0, 0, 0, 0.6);
z-index: 1050;
padding: 1rem;
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}
.heading-share-modal[hidden] { display: none !important; }
.hsm-dialog {
max-width: 420px;
width: 100%;
background: var(--bs-body-bg, #fff);
color: var(--bs-body-color, #212529);
border: 1px solid var(--bs-border-color, rgba(0,0,0,0.1));
border-radius: 1rem;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
overflow: hidden;
animation: hsm-fade-in 0.2s ease-out;
}
@keyframes hsm-fade-in {
from { opacity: 0; transform: scale(0.95); }
to { opacity: 1; transform: scale(1); }
}
[data-bs-theme="dark"] .hsm-dialog {
background: #1e293b;
border-color: rgba(255,255,255,0.1);
color: #f8f9fa;
}
.hsm-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 1.5rem;
border-bottom: 1px solid var(--bs-border-color, rgba(0,0,0,0.1));
background: rgba(0,0,0,0.02);
}
[data-bs-theme="dark"] .hsm-header {
background: rgba(255,255,255,0.02);
border-color: rgba(255,255,255,0.1);
}
.hsm-close {
background: transparent;
border: none;
color: inherit;
opacity: 0.5;
padding: 0.25rem 0.5rem;
border-radius: 0.25rem;
font-size: 1.2rem;
line-height: 1;
transition: opacity 0.2s;
}
.hsm-close:hover {
opacity: 1;
}
.hsm-body {
padding: 1.5rem;
}
.hsm-url-group {
display: flex !important;
align-items: stretch;
}
.hsm-url-group .form-control {
flex: 1;
min-width: 0;
margin: 0;
background: var(--bs-secondary-bg, #f8f9fa);
border-color: var(--bs-border-color, #dee2e6);
border-top-right-radius: 0;
border-bottom-right-radius: 0;
height: 42px;
}
.hsm-url-group .btn {
flex: 0 0 auto;
margin: 0;
margin-left: -1px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
height: 42px;
display: flex;
align-items: center;
justify-content: center;
padding: 0 1.25rem;
z-index: 2;
}
[data-bs-theme="dark"] .hsm-url-group .form-control {
background: #0f172a;
border-color: #334155;
color: #e2e8f0;
}
.hsm-share-grid {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.hsm-share-grid .btn {
display: flex;
align-items: center;
justify-content: center;
font-size: 0.9rem;
padding: 0.6rem;
border-color: var(--bs-border-color);
width: 100%;
}
[data-bs-theme="dark"] .hsm-share-grid .btn {
color: #e2e8f0;
border-color: #475569;
}
[data-bs-theme="dark"] .hsm-share-grid .btn:hover {
background: #334155;
border-color: #cbd5e1;
}
</style>
<script>
(function(){
const modal = document.getElementById('headingShareModal');
if(!modal) return;
const input = modal.querySelector('#headingShareInput');
const copyBtn = modal.querySelector('.hsm-copy');
const twitter = modal.querySelector('#share-twitter');
const linkedin = modal.querySelector('#share-linkedin');
const facebook = modal.querySelector('#share-facebook');
const closeBtn = modal.querySelector('.hsm-close');
let lastFocus=null;
let trapBound=false;
function buildUrl(id){ return window.location.origin + window.location.pathname + '#' + id; }
function isOpen(){ return !modal.hasAttribute('hidden'); }
function hydrate(id){
const url=buildUrl(id);
input.value=url;
const enc=encodeURIComponent(url);
const text=encodeURIComponent(document.title);
if(twitter) twitter.href=`https://twitter.com/intent/tweet?url=${enc}&text=${text}`;
if(linkedin) linkedin.href=`https://www.linkedin.com/sharing/share-offsite/?url=${enc}`;
if(facebook) facebook.href=`https://www.facebook.com/sharer/sharer.php?u=${enc}`;
}
function openModal(id){
lastFocus=document.activeElement;
hydrate(id);
if(!isOpen()){
modal.removeAttribute('hidden');
}
requestAnimationFrame(()=>{ input.focus(); });
trapFocus();
}
function closeModal(){
if(!isOpen()) return;
modal.setAttribute('hidden','');
if(lastFocus && typeof lastFocus.focus==='function') lastFocus.focus();
}
function copyCurrent(){
try{ navigator.clipboard.writeText(input.value).then(()=>feedback(true),()=>fallback()); }
catch(e){ fallback(); }
}
function fallback(){ input.select(); try{ document.execCommand('copy'); feedback(true);}catch(e){ feedback(false);} }
function feedback(ok){ if(!copyBtn) return; const icon=copyBtn.querySelector('i'); if(!icon) return; const prev=copyBtn.getAttribute('data-prev')||icon.className; if(!copyBtn.getAttribute('data-prev')) copyBtn.setAttribute('data-prev',prev); icon.className= ok ? 'fa-duotone fa-clipboard-check':'fa-duotone fa-circle-exclamation'; setTimeout(()=>{ icon.className=prev; },1800); }
function handleShareClick(e){ e.preventDefault(); const btn=e.currentTarget; const id=btn.getAttribute('data-share-target'); if(id) openModal(id); }
function bindShareButtons(){
document.querySelectorAll('.h-share').forEach(btn=>{
if(!btn.dataset.hShareBound){ btn.addEventListener('click', handleShareClick); btn.dataset.hShareBound='1'; }
});
}
bindShareButtons();
if(document.readyState==='loading'){
document.addEventListener('DOMContentLoaded', bindShareButtons);
} else {
requestAnimationFrame(bindShareButtons);
}
document.addEventListener('click', function(e){
const shareBtn=e.target.closest && e.target.closest('.h-share');
if(shareBtn && !shareBtn.dataset.hShareBound){ handleShareClick.call(shareBtn, e); }
}, true);
document.addEventListener('click', e=>{
if(e.target===modal) closeModal();
if(e.target.closest && e.target.closest('.hsm-close')){ e.preventDefault(); closeModal(); }
if(copyBtn && (e.target===copyBtn || (e.target.closest && e.target.closest('.hsm-copy')))) { e.preventDefault(); copyCurrent(); }
});
document.addEventListener('keydown', e=>{ if(e.key==='Escape' && isOpen()) closeModal(); });
function trapFocus(){
if(trapBound) return;
trapBound=true;
modal.addEventListener('keydown', f=>{ if(f.key==='Tab' && isOpen()){ const focusable=[...modal.querySelectorAll('a[href],button,input,textarea,select,[tabindex]:not([tabindex="-1"])')].filter(el=>!el.hasAttribute('disabled')); if(!focusable.length) return; const first=focusable[0]; const last=focusable[focusable.length-1]; if(f.shiftKey && document.activeElement===first){ f.preventDefault(); last.focus(); } else if(!f.shiftKey && document.activeElement===last){ f.preventDefault(); first.focus(); } } });
}
if(closeBtn) closeBtn.addEventListener('click', e=>{ e.preventDefault(); closeModal(); });
})();
</script><p>Geode implements a modern connection architecture built on:</p>
<ul>
<li><strong>QUIC Transport</strong>: UDP-based transport with built-in encryption and multiplexing</li>
<li><strong>TLS 1.3</strong>: Latest transport layer security for all connections</li>
<li><strong>Connection Pooling</strong>: Efficient resource management for high-throughput applications</li>
<li><strong>Session Management</strong>: Stateful sessions with authentication and context</li>
<li><strong>Load Balancing</strong>: Automatic distribution across cluster nodes</li>
</ul>
<h4 id="default-connection-settings" class="position-relative d-flex align-items-center group">
<span>Default Connection Settings</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="default-connection-settings"
aria-haspopup="dialog"
aria-label="Share link: Default Connection Settings">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Server listens on standard port 3141</span>
</span></span><span class="line"><span class="cl">geode serve --listen 0.0.0.0:3141
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Alternative secure port 8443</span>
</span></span><span class="line"><span class="cl">geode serve --listen 0.0.0.0:8443
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># IPv6 support</span>
</span></span><span class="line"><span class="cl">geode serve --listen <span class="o">[</span>::<span class="o">]</span>:3141
</span></span></code></pre></div>
<h3 id="quic-transport" class="position-relative d-flex align-items-center group">
<span>QUIC Transport</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="quic-transport"
aria-haspopup="dialog"
aria-label="Share link: QUIC Transport">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3><p>Geode uses QUIC (Quick UDP Internet Connections) as its primary transport protocol, providing advantages over traditional TCP:</p>
<h4 id="benefits-of-quic" class="position-relative d-flex align-items-center group">
<span>Benefits of QUIC</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="benefits-of-quic"
aria-haspopup="dialog"
aria-label="Share link: Benefits of QUIC">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><ul>
<li><strong>Faster Connection Establishment</strong>: 0-RTT and 1-RTT connection setup vs TCP’s 3-way handshake</li>
<li><strong>No Head-of-Line Blocking</strong>: Independent streams don’t block each other</li>
<li><strong>Built-in Encryption</strong>: TLS 1.3 encryption mandatory, not optional</li>
<li><strong>Connection Migration</strong>: Connections survive IP address changes</li>
<li><strong>Multiplexing</strong>: Multiple queries over single connection without interference</li>
</ul>
<h4 id="quic-configuration" class="position-relative d-flex align-items-center group">
<span>QUIC Configuration</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="quic-configuration"
aria-haspopup="dialog"
aria-label="Share link: QUIC Configuration">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Basic QUIC configuration (uses defaults)</span>
</span></span><span class="line"><span class="cl">geode serve --transport<span class="o">=</span>quic
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Advanced QUIC tuning</span>
</span></span><span class="line"><span class="cl">geode serve --transport<span class="o">=</span>quic <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --quic-max-streams<span class="o">=</span><span class="m">1000</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --quic-max-idle-timeout<span class="o">=</span>300s <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --quic-initial-rtt<span class="o">=</span>100ms <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --quic-congestion-control<span class="o">=</span>cubic
</span></span></code></pre></div>
<h4 id="quic-vs-tcp" class="position-relative d-flex align-items-center group">
<span>QUIC vs TCP</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="quic-vs-tcp"
aria-haspopup="dialog"
aria-label="Share link: QUIC vs TCP">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><table>
<thead>
<tr>
<th>Feature</th>
<th>QUIC</th>
<th>TCP</th>
</tr>
</thead>
<tbody>
<tr>
<td>Connection Setup</td>
<td>0-1 RTT</td>
<td>1-3 RTT</td>
</tr>
<tr>
<td>Encryption</td>
<td>Built-in TLS 1.3</td>
<td>Optional</td>
</tr>
<tr>
<td>Head-of-Line Blocking</td>
<td>None</td>
<td>Yes</td>
</tr>
<tr>
<td>Connection Migration</td>
<td>Yes</td>
<td>No</td>
</tr>
<tr>
<td>Multiplexing</td>
<td>Native</td>
<td>Requires HTTP/2</td>
</tr>
</tbody>
</table>
<h3 id="tls-configuration" class="position-relative d-flex align-items-center group">
<span>TLS Configuration</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="tls-configuration"
aria-haspopup="dialog"
aria-label="Share link: TLS Configuration">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3><p>All Geode connections are encrypted using TLS 1.3:</p>
<h4 id="basic-tls-setup" class="position-relative d-flex align-items-center group">
<span>Basic TLS Setup</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="basic-tls-setup"
aria-haspopup="dialog"
aria-label="Share link: Basic TLS Setup">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Generate self-signed certificate for development</span>
</span></span><span class="line"><span class="cl">geode cert-gen --output-dir<span class="o">=</span>/etc/geode/certs <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --common-name<span class="o">=</span>geode.example.com <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --validity-days<span class="o">=</span><span class="m">365</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Start server with TLS</span>
</span></span><span class="line"><span class="cl">geode serve --tls-cert<span class="o">=</span>/etc/geode/certs/server.crt <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --tls-key<span class="o">=</span>/etc/geode/certs/server.key
</span></span></code></pre></div>
<h4 id="production-tls-configuration" class="position-relative d-flex align-items-center group">
<span>Production TLS Configuration</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="production-tls-configuration"
aria-haspopup="dialog"
aria-label="Share link: Production TLS Configuration">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Use production certificates from CA</span>
</span></span><span class="line"><span class="cl">geode serve --tls-cert<span class="o">=</span>/etc/geode/certs/production.crt <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --tls-key<span class="o">=</span>/etc/geode/certs/production.key <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --tls-ca<span class="o">=</span>/etc/geode/certs/ca-bundle.crt <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --tls-min-version<span class="o">=</span>1.3 <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --tls-cipher-suites<span class="o">=</span>TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256
</span></span></code></pre></div>
<h4 id="mutual-tls-mtls" class="position-relative d-flex align-items-center group">
<span>Mutual TLS (mTLS)</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="mutual-tls-mtls"
aria-haspopup="dialog"
aria-label="Share link: Mutual TLS (mTLS)">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p>Require clients to present valid certificates:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Enable mutual TLS authentication</span>
</span></span><span class="line"><span class="cl">geode serve --require-client-certificates<span class="o">=</span><span class="nb">true</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --client-ca<span class="o">=</span>/etc/geode/certs/client-ca.crt <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --verify-client-certificates<span class="o">=</span>strict
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Allow specific client certificates</span>
</span></span><span class="line"><span class="cl">geode serve --require-client-certificates<span class="o">=</span><span class="nb">true</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --client-cert-allowlist<span class="o">=</span>/etc/geode/allowed-clients.txt
</span></span></code></pre></div><p>Client connection with certificate:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># Python client with mTLS</span>
</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">geode_client</span> <span class="kn">import</span> <span class="n">Client</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">client</span> <span class="o">=</span> <span class="n">Client</span><span class="p">(</span>
</span></span><span class="line"><span class="cl"> <span class="n">host</span><span class="o">=</span><span class="s1">'geode.example.com'</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">port</span><span class="o">=</span><span class="mi">3141</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">tls_cert</span><span class="o">=</span><span class="s1">'/etc/client/client.crt'</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">tls_key</span><span class="o">=</span><span class="s1">'/etc/client/client.key'</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">tls_ca</span><span class="o">=</span><span class="s1">'/etc/client/ca.crt'</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span></code></pre></div>
<h3 id="connection-pooling" class="position-relative d-flex align-items-center group">
<span>Connection Pooling</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-pooling"
aria-haspopup="dialog"
aria-label="Share link: Connection Pooling">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3><p>Connection pools manage multiple connections efficiently:</p>
<h4 id="server-side-connection-limits" class="position-relative d-flex align-items-center group">
<span>Server-Side Connection Limits</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="server-side-connection-limits"
aria-haspopup="dialog"
aria-label="Share link: Server-Side Connection Limits">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Configure server connection limits</span>
</span></span><span class="line"><span class="cl">geode serve --max-connections<span class="o">=</span><span class="m">10000</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --max-connections-per-ip<span class="o">=</span><span class="m">100</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --connection-timeout<span class="o">=</span>30s <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --idle-timeout<span class="o">=</span>300s
</span></span></code></pre></div>
<h4 id="client-side-connection-pooling" class="position-relative d-flex align-items-center group">
<span>Client-Side Connection Pooling</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="client-side-connection-pooling"
aria-haspopup="dialog"
aria-label="Share link: Client-Side Connection Pooling">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Go Client</strong></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="kn">import</span> <span class="p">(</span>
</span></span><span class="line"><span class="cl"> <span class="s">"context"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"database/sql"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"log"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"time"</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"> <span class="nx">_</span> <span class="s">"geodedb.com/geode"</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nx">db</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">sql</span><span class="p">.</span><span class="nf">Open</span><span class="p">(</span><span class="s">"geode"</span><span class="p">,</span> <span class="s">"quic://geode.example.com:3141"</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">log</span><span class="p">.</span><span class="nf">Fatal</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="k">defer</span> <span class="nx">db</span><span class="p">.</span><span class="nf">Close</span><span class="p">()</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// Pooling via database/sql
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="nx">db</span><span class="p">.</span><span class="nf">SetMaxOpenConns</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nx">db</span><span class="p">.</span><span class="nf">SetMaxIdleConns</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nx">db</span><span class="p">.</span><span class="nf">SetConnMaxIdleTime</span><span class="p">(</span><span class="mi">300</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nx">rows</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">db</span><span class="p">.</span><span class="nf">QueryContext</span><span class="p">(</span><span class="nx">context</span><span class="p">.</span><span class="nf">Background</span><span class="p">(),</span> <span class="s">"MATCH (p:Person) RETURN p"</span><span class="p">)</span>
</span></span></code></pre></div><p><strong>Python Client</strong></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">geode_client</span> <span class="kn">import</span> <span class="n">ConnectionPool</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">pool</span> <span class="o">=</span> <span class="n">ConnectionPool</span><span class="p">(</span>
</span></span><span class="line"><span class="cl"> <span class="n">host</span><span class="o">=</span><span class="s2">"geode.example.com"</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">port</span><span class="o">=</span><span class="mi">3141</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">min_size</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">max_size</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">skip_verify</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">async</span> <span class="k">with</span> <span class="n">pool</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"> <span class="k">async</span> <span class="k">with</span> <span class="n">pool</span><span class="o">.</span><span class="n">acquire</span><span class="p">()</span> <span class="k">as</span> <span class="n">conn</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"> <span class="n">page</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="k">await</span> <span class="n">conn</span><span class="o">.</span><span class="n">query</span><span class="p">(</span><span class="s2">"MATCH (p:Person) RETURN p"</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">page</span><span class="o">.</span><span class="n">rows</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">row</span><span class="p">[</span><span class="s2">"p"</span><span class="p">])</span>
</span></span></code></pre></div><p><strong>Rust Client</strong></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-rust" data-lang="rust"><span class="line"><span class="cl"><span class="k">use</span><span class="w"> </span><span class="n">geode_client</span>::<span class="n">ConnectionPool</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">let</span><span class="w"> </span><span class="n">pool</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ConnectionPool</span>::<span class="n">new</span><span class="p">(</span><span class="s">"geode.example.com"</span><span class="p">,</span><span class="w"> </span><span class="mi">3141</span><span class="p">,</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">.</span><span class="n">skip_verify</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">.</span><span class="n">page_size</span><span class="p">(</span><span class="mi">1000</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">conn</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pool</span><span class="p">.</span><span class="n">acquire</span><span class="p">().</span><span class="k">await</span><span class="o">?</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">let</span><span class="w"> </span><span class="p">(</span><span class="n">page</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">conn</span><span class="p">.</span><span class="n">query</span><span class="p">(</span><span class="s">"MATCH (p:Person) RETURN p"</span><span class="p">).</span><span class="k">await</span><span class="o">?</span><span class="p">;</span><span class="w">
</span></span></span></code></pre></div>
<h4 id="connection-pool-best-practices" class="position-relative d-flex align-items-center group">
<span>Connection Pool Best Practices</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-pool-best-practices"
aria-haspopup="dialog"
aria-label="Share link: Connection Pool Best Practices">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><ol>
<li><strong>Size appropriately</strong>: Pool size should match expected concurrent queries</li>
<li><strong>Set idle timeouts</strong>: Reclaim unused connections automatically</li>
<li><strong>Enable health checks</strong>: Detect and remove failed connections</li>
<li><strong>Monitor pool metrics</strong>: Track utilization, wait times, and failures</li>
<li><strong>Use connection recycling</strong>: Periodically refresh connections to detect issues</li>
</ol>
<h3 id="authentication" class="position-relative d-flex align-items-center group">
<span>Authentication</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="authentication"
aria-haspopup="dialog"
aria-label="Share link: Authentication">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3><p>Secure connection authentication methods:</p>
<h4 id="usernamepassword-authentication" class="position-relative d-flex align-items-center group">
<span>Username/Password Authentication</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="usernamepassword-authentication"
aria-haspopup="dialog"
aria-label="Share link: Username/Password Authentication">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Server with password authentication</span>
</span></span><span class="line"><span class="cl">geode serve --auth-method<span class="o">=</span>password <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --user-database<span class="o">=</span>/etc/geode/users.db
</span></span></code></pre></div><p>Client connection:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">client</span> <span class="o">=</span> <span class="n">Client</span><span class="p">(</span>
</span></span><span class="line"><span class="cl"> <span class="n">host</span><span class="o">=</span><span class="s1">'geode.example.com'</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">port</span><span class="o">=</span><span class="mi">3141</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">username</span><span class="o">=</span><span class="s1">'[email protected]'</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">password</span><span class="o">=</span><span class="s1">'SecureP@ssw0rd'</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span></code></pre></div>
<h4 id="token-based-authentication" class="position-relative d-flex align-items-center group">
<span>Token-Based Authentication</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="token-based-authentication"
aria-haspopup="dialog"
aria-label="Share link: Token-Based Authentication">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Server with JWT token authentication</span>
</span></span><span class="line"><span class="cl">geode serve --auth-method<span class="o">=</span>jwt <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --jwt-secret-key-file<span class="o">=</span>/etc/geode/jwt-secret.key <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --jwt-issuer<span class="o">=</span>geode.example.com <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --jwt-audience<span class="o">=</span>geode-api
</span></span></code></pre></div><p>Client with token:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">client</span> <span class="o">=</span> <span class="n">Client</span><span class="p">(</span>
</span></span><span class="line"><span class="cl"> <span class="n">host</span><span class="o">=</span><span class="s1">'geode.example.com'</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">port</span><span class="o">=</span><span class="mi">3141</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="n">auth_token</span><span class="o">=</span><span class="s1">'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span></code></pre></div>
<h4 id="oauth-20--openid-connect" class="position-relative d-flex align-items-center group">
<span>OAuth 2.0 / OpenID Connect</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="oauth-20--openid-connect"
aria-haspopup="dialog"
aria-label="Share link: OAuth 2.0 / OpenID Connect">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Server with OAuth 2.0</span>
</span></span><span class="line"><span class="cl">geode serve --auth-method<span class="o">=</span>oauth2 <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --oauth2-provider<span class="o">=</span>https://auth.example.com <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --oauth2-client-id<span class="o">=</span>geode-server <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --oauth2-client-secret-file<span class="o">=</span>/etc/geode/oauth-secret.txt
</span></span></code></pre></div>
<h4 id="ldap-authentication" class="position-relative d-flex align-items-center group">
<span>LDAP Authentication</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="ldap-authentication"
aria-haspopup="dialog"
aria-label="Share link: LDAP Authentication">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Server with LDAP authentication</span>
</span></span><span class="line"><span class="cl">geode serve --auth-method<span class="o">=</span>ldap <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --ldap-server<span class="o">=</span>ldap://ldap.example.com:389 <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --ldap-base-dn<span class="o">=</span><span class="s2">"dc=example,dc=com"</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --ldap-bind-dn<span class="o">=</span><span class="s2">"cn=geode,ou=services,dc=example,dc=com"</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --ldap-bind-password-file<span class="o">=</span>/etc/geode/ldap-password.txt
</span></span></code></pre></div>
<h4 id="multi-factor-authentication" class="position-relative d-flex align-items-center group">
<span>Multi-Factor Authentication</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="multi-factor-authentication"
aria-haspopup="dialog"
aria-label="Share link: Multi-Factor Authentication">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Require MFA for connections</span>
</span></span><span class="line"><span class="cl">geode serve --require-mfa<span class="o">=</span><span class="nb">true</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --mfa-providers<span class="o">=</span>totp,webauthn <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --mfa-grace-period<span class="o">=</span><span class="m">0</span>
</span></span></code></pre></div>
<h3 id="session-management" class="position-relative d-flex align-items-center group">
<span>Session Management</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="session-management"
aria-haspopup="dialog"
aria-label="Share link: Session Management">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="session-configuration" class="position-relative d-flex align-items-center group">
<span>Session Configuration</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="session-configuration"
aria-haspopup="dialog"
aria-label="Share link: Session Configuration">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Configure session behavior</span>
</span></span><span class="line"><span class="cl">geode serve --session-timeout<span class="o">=</span><span class="m">1800</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --session-max-idle<span class="o">=</span><span class="m">900</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --session-max-lifetime<span class="o">=</span><span class="m">86400</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --persistent-sessions<span class="o">=</span><span class="nb">true</span>
</span></span></code></pre></div>
<h4 id="session-variables" class="position-relative d-flex align-items-center group">
<span>Session Variables</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="session-variables"
aria-haspopup="dialog"
aria-label="Share link: Session Variables">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p>Set session-specific variables:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">--</span><span class="w"> </span><span class="py">Set</span><span class="w"> </span><span class="py">session</span><span class="w"> </span><span class="py">variables</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">SET</span><span class="w"> </span><span class="py">SESSION</span><span class="w"> </span><span class="py">tenant_id</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="err">'</span><span class="py">tenant_123</span><span class="err">';</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">SET</span><span class="w"> </span><span class="py">SESSION</span><span class="w"> </span><span class="py">timeout</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="py">3600</span><span class="err">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">SET</span><span class="w"> </span><span class="py">SESSION</span><span class="w"> </span><span class="py">isolation_level</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="err">'</span><span class="py">SNAPSHOT</span><span class="err">';</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Query</span><span class="w"> </span><span class="py">session</span><span class="w"> </span><span class="py">settings</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">SHOW</span><span class="w"> </span><span class="py">SESSION</span><span class="w"> </span><span class="py">VARIABLES</span><span class="err">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Reset</span><span class="w"> </span><span class="py">session</span><span class="w"> </span><span class="py">variable</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RESET</span><span class="w"> </span><span class="py">SESSION</span><span class="w"> </span><span class="py">tenant_id</span><span class="err">;</span><span class="w">
</span></span></span></code></pre></div>
<h4 id="session-monitoring" class="position-relative d-flex align-items-center group">
<span>Session Monitoring</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="session-monitoring"
aria-haspopup="dialog"
aria-label="Share link: Session Monitoring">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># View active sessions</span>
</span></span><span class="line"><span class="cl">geode sessions list
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Terminate specific session</span>
</span></span><span class="line"><span class="cl">geode sessions <span class="nb">kill</span> --session-id<span class="o">=</span>sess_abc123
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Terminate idle sessions</span>
</span></span><span class="line"><span class="cl">geode sessions cleanup --idle-timeout<span class="o">=</span><span class="m">1800</span>
</span></span></code></pre></div>
<h3 id="connection-security-best-practices" class="position-relative d-flex align-items-center group">
<span>Connection Security Best Practices</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-security-best-practices"
aria-haspopup="dialog"
aria-label="Share link: Connection Security Best Practices">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="network-security" class="position-relative d-flex align-items-center group">
<span>Network Security</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="network-security"
aria-haspopup="dialog"
aria-label="Share link: Network Security">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Bind to specific interface</span>
</span></span><span class="line"><span class="cl">geode serve --listen 10.0.1.50:3141
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Use firewall to restrict access</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Allow only application servers</span>
</span></span><span class="line"><span class="cl">iptables -A INPUT -p udp --dport <span class="m">3141</span> -s 10.0.2.0/24 -j ACCEPT
</span></span><span class="line"><span class="cl">iptables -A INPUT -p udp --dport <span class="m">3141</span> -j DROP
</span></span></code></pre></div>
<h4 id="rate-limiting" class="position-relative d-flex align-items-center group">
<span>Rate Limiting</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="rate-limiting"
aria-haspopup="dialog"
aria-label="Share link: Rate Limiting">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Limit connection rate per IP</span>
</span></span><span class="line"><span class="cl">geode serve --rate-limit-connections<span class="o">=</span>100/min <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --rate-limit-queries<span class="o">=</span>1000/min <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --rate-limit-bandwidth<span class="o">=</span>100mbps
</span></span></code></pre></div>
<h4 id="ip-allowlisting" class="position-relative d-flex align-items-center group">
<span>IP Allowlisting</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="ip-allowlisting"
aria-haspopup="dialog"
aria-label="Share link: IP Allowlisting">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Only allow specific IPs to connect</span>
</span></span><span class="line"><span class="cl">geode serve --ip-allowlist<span class="o">=</span>/etc/geode/allowed-ips.txt
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># /etc/geode/allowed-ips.txt:</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 10.0.2.0/24</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 192.168.1.100</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 2001:db8::/32</span>
</span></span></code></pre></div>
<h4 id="automatic-blocking" class="position-relative d-flex align-items-center group">
<span>Automatic Blocking</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="automatic-blocking"
aria-haspopup="dialog"
aria-label="Share link: Automatic Blocking">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Block IPs with failed authentication attempts</span>
</span></span><span class="line"><span class="cl">geode serve --auto-block-failed-auth<span class="o">=</span><span class="nb">true</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --failed-auth-threshold<span class="o">=</span><span class="m">5</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --failed-auth-window<span class="o">=</span>300s <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --block-duration<span class="o">=</span>3600s
</span></span></code></pre></div>
<h3 id="connection-monitoring" class="position-relative d-flex align-items-center group">
<span>Connection Monitoring</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-monitoring"
aria-haspopup="dialog"
aria-label="Share link: Connection Monitoring">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="connection-metrics" class="position-relative d-flex align-items-center group">
<span>Connection Metrics</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-metrics"
aria-haspopup="dialog"
aria-label="Share link: Connection Metrics">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># View connection statistics</span>
</span></span><span class="line"><span class="cl">geode stats --component<span class="o">=</span>connections
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Example output:</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Active Connections: 1,247</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Peak Connections: 2,456</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Total Connections: 15,234,567</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Failed Connections: 123</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Average Connection Duration: 45.3s</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Connection Pool Utilization: 62%</span>
</span></span></code></pre></div>
<h4 id="connection-logging" class="position-relative d-flex align-items-center group">
<span>Connection Logging</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-logging"
aria-haspopup="dialog"
aria-label="Share link: Connection Logging">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Enable connection audit logging</span>
</span></span><span class="line"><span class="cl">geode serve --log-connections<span class="o">=</span><span class="nb">true</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --log-level<span class="o">=</span>info <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --log-file<span class="o">=</span>/var/log/geode/connections.log
</span></span></code></pre></div><p>Example log entry:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">2026-01-24T10:15:32.123Z INFO connection_accepted
</span></span><span class="line"><span class="cl"> remote_addr=192.168.1.100:54321
</span></span><span class="line"><span class="cl"> session_id=sess_abc123
</span></span><span class="line"><span class="cl"> [email protected]
</span></span><span class="line"><span class="cl"> tls_version=1.3
</span></span><span class="line"><span class="cl"> cipher_suite=TLS_AES_256_GCM_SHA384
</span></span></code></pre></div>
<h4 id="health-checks" class="position-relative d-flex align-items-center group">
<span>Health Checks</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="health-checks"
aria-haspopup="dialog"
aria-label="Share link: Health Checks">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># HTTP health check endpoint</span>
</span></span><span class="line"><span class="cl">geode serve --health-check-enabled<span class="o">=</span><span class="nb">true</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --health-check-port<span class="o">=</span><span class="m">8080</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --health-check-path<span class="o">=</span>/health
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Check health</span>
</span></span><span class="line"><span class="cl">curl http://geode.example.com:8080/health
</span></span><span class="line"><span class="cl"><span class="c1"># {"status": "healthy", "connections": 1247, "uptime": 86400}</span>
</span></span></code></pre></div>
<h3 id="connection-troubleshooting" class="position-relative d-flex align-items-center group">
<span>Connection Troubleshooting</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-troubleshooting"
aria-haspopup="dialog"
aria-label="Share link: Connection Troubleshooting">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="connection-refused" class="position-relative d-flex align-items-center group">
<span>Connection Refused</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-refused"
aria-haspopup="dialog"
aria-label="Share link: Connection Refused">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p>Check:</p>
<ol>
<li>Server is running: <code>systemctl status geode</code></li>
<li>Firewall allows connections: <code>iptables -L</code></li>
<li>Correct port number</li>
<li>Server listening on correct interface</li>
</ol>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Verify server is listening</span>
</span></span><span class="line"><span class="cl">netstat -ulnp <span class="p">|</span> grep <span class="m">3141</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Should show: udp 0.0.0.0:3141 ... geode</span>
</span></span></code></pre></div>
<h4 id="tls-handshake-failures" class="position-relative d-flex align-items-center group">
<span>TLS Handshake Failures</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="tls-handshake-failures"
aria-haspopup="dialog"
aria-label="Share link: TLS Handshake Failures">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Test TLS connection</span>
</span></span><span class="line"><span class="cl">openssl s_client -connect geode.example.com:3141 <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> -tls1_3 -showcerts
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Verify certificate</span>
</span></span><span class="line"><span class="cl">geode cert-verify --cert<span class="o">=</span>/etc/geode/certs/server.crt
</span></span></code></pre></div>
<h4 id="connection-timeouts" class="position-relative d-flex align-items-center group">
<span>Connection Timeouts</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-timeouts"
aria-haspopup="dialog"
aria-label="Share link: Connection Timeouts">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-ts" data-lang="ts"><span class="line"><span class="cl"><span class="c1">// Node.js: configure connect/request timeouts via DSN options
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kr">import</span> <span class="p">{</span> <span class="nx">createClient</span> <span class="p">}</span> <span class="kr">from</span> <span class="s1">'@geodedb/client'</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kr">const</span> <span class="nx">client</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">createClient</span><span class="p">(</span>
</span></span><span class="line"><span class="cl"> <span class="s1">'quic://geode.example.com:3141?connect_timeout=60000&request_timeout=300000'</span>
</span></span><span class="line"><span class="cl"><span class="p">);</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># Python: wrap operations with asyncio timeouts</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">asyncio</span>
</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">geode_client</span> <span class="kn">import</span> <span class="n">Client</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">client</span> <span class="o">=</span> <span class="n">Client</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="s2">"geode.example.com"</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="mi">3141</span><span class="p">,</span> <span class="n">skip_verify</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="k">async</span> <span class="k">with</span> <span class="n">client</span><span class="o">.</span><span class="n">connection</span><span class="p">()</span> <span class="k">as</span> <span class="n">conn</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"> <span class="n">result</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">wait_for</span><span class="p">(</span>
</span></span><span class="line"><span class="cl"> <span class="n">conn</span><span class="o">.</span><span class="n">query</span><span class="p">(</span><span class="s2">"MATCH (p:Person) RETURN p LIMIT 1"</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"> <span class="n">timeout</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="p">)</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Increase server timeout</span>
</span></span><span class="line"><span class="cl">geode serve --connection-timeout<span class="o">=</span>60s <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --query-timeout<span class="o">=</span>300s
</span></span></code></pre></div>
<h4 id="pool-exhaustion" class="position-relative d-flex align-items-center group">
<span>Pool Exhaustion</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="pool-exhaustion"
aria-haspopup="dialog"
aria-label="Share link: Pool Exhaustion">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p>If connection pool is exhausted:</p>
<ol>
<li>Increase pool size</li>
<li>Reduce connection hold time</li>
<li>Enable connection recycling</li>
<li>Check for connection leaks</li>
</ol>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Monitor pool usage</span>
</span></span><span class="line"><span class="cl">geode stats --component<span class="o">=</span>connection-pool <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --interval<span class="o">=</span>1s <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --duration<span class="o">=</span>60s
</span></span></code></pre></div>
<h3 id="performance-optimization" class="position-relative d-flex align-items-center group">
<span>Performance Optimization</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="performance-optimization"
aria-haspopup="dialog"
aria-label="Share link: Performance Optimization">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="connection-reuse" class="position-relative d-flex align-items-center group">
<span>Connection Reuse</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-reuse"
aria-haspopup="dialog"
aria-label="Share link: Connection Reuse">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># Reuse connections efficiently</span>
</span></span><span class="line"><span class="cl"><span class="k">async</span> <span class="k">with</span> <span class="n">client</span><span class="o">.</span><span class="n">connection</span><span class="p">()</span> <span class="k">as</span> <span class="n">conn</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"> <span class="k">await</span> <span class="n">conn</span><span class="o">.</span><span class="n">begin</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"> <span class="k">await</span> <span class="n">conn</span><span class="o">.</span><span class="n">query</span><span class="p">(</span><span class="s2">"MATCH (p:Person {id: $id}) RETURN p"</span><span class="p">,</span> <span class="p">{</span><span class="s2">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">})</span>
</span></span><span class="line"><span class="cl"> <span class="k">await</span> <span class="n">conn</span><span class="o">.</span><span class="n">query</span><span class="p">(</span><span class="s2">"MATCH (c:Company {id: $id}) RETURN c"</span><span class="p">,</span> <span class="p">{</span><span class="s2">"id"</span><span class="p">:</span> <span class="mi">2</span><span class="p">})</span>
</span></span><span class="line"><span class="cl"> <span class="k">await</span> <span class="n">conn</span><span class="o">.</span><span class="n">query</span><span class="p">(</span><span class="s2">"MATCH (p:Product {id: $id}) RETURN p"</span><span class="p">,</span> <span class="p">{</span><span class="s2">"id"</span><span class="p">:</span> <span class="mi">3</span><span class="p">})</span>
</span></span><span class="line"><span class="cl"> <span class="k">await</span> <span class="n">conn</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"> <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"> <span class="k">await</span> <span class="n">conn</span><span class="o">.</span><span class="n">rollback</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"> <span class="k">raise</span>
</span></span></code></pre></div>
<h4 id="batching" class="position-relative d-flex align-items-center group">
<span>Batching</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="batching"
aria-haspopup="dialog"
aria-label="Share link: Batching">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># Batch multiple queries in single round-trip</span>
</span></span><span class="line"><span class="cl"><span class="k">async</span> <span class="k">with</span> <span class="n">client</span><span class="o">.</span><span class="n">connection</span><span class="p">()</span> <span class="k">as</span> <span class="n">conn</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"> <span class="n">results</span> <span class="o">=</span> <span class="k">await</span> <span class="n">conn</span><span class="o">.</span><span class="n">batch</span><span class="p">([</span>
</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="s2">"MATCH (p:Person {id: $id}) RETURN p"</span><span class="p">,</span> <span class="p">{</span><span class="s2">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">}),</span>
</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="s2">"MATCH (c:Company {id: $id}) RETURN c"</span><span class="p">,</span> <span class="p">{</span><span class="s2">"id"</span><span class="p">:</span> <span class="mi">2</span><span class="p">}),</span>
</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="s2">"MATCH (p:Product {id: $id}) RETURN p"</span><span class="p">,</span> <span class="p">{</span><span class="s2">"id"</span><span class="p">:</span> <span class="mi">3</span><span class="p">}),</span>
</span></span><span class="line"><span class="cl"> <span class="p">])</span>
</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">result</span> <span class="ow">in</span> <span class="n">results</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">success</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">rows</span><span class="p">)</span>
</span></span></code></pre></div>
<h4 id="connection-warmup" class="position-relative d-flex align-items-center group">
<span>Connection Warmup</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-warmup"
aria-haspopup="dialog"
aria-label="Share link: Connection Warmup">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Pre-warm connection pool on startup</span>
</span></span><span class="line"><span class="cl">geode connection-pool warmup --size<span class="o">=</span><span class="m">50</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --target<span class="o">=</span>geode.example.com:3141
</span></span></code></pre></div>
<h3 id="related-topics" class="position-relative d-flex align-items-center group">
<span>Related Topics</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="related-topics"
aria-haspopup="dialog"
aria-label="Share link: Related Topics">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3><ul>
<li><a
href="/tags/encryption/"
>Encryption</a>
- Data encryption in transit and at rest</li>
<li><a
href="/tags/configuration/"
>Configuration</a>
- Server and client configuration</li>
<li><a
href="/docs/security/overview/"
>Security Overview</a>
- Security documentation</li>
<li><a
href="/docs/client-libraries/"
>Client Libraries</a>
- Language-specific client documentation</li>
</ul>
Tag
1 article
Connection Management & Security
Comprehensive guide to connection management and security in Geode. Learn about QUIC transport, TLS configuration, connection pooling, authentication, and best practices for secure database connections.