Vapora/docs/features/overview.html
Jesús Pérez 7110ffeea2
Some checks failed
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (push) Has been cancelled
chore: extend doc: adr, tutorials, operations, etc
2026-01-12 03:32:47 +00:00

1117 lines
48 KiB
HTML

<!DOCTYPE HTML>
<html lang="en" class="light sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Platform Capabilities - VAPORA Platform Documentation</title>
<!-- Custom HTML head -->
<meta name="description" content="Comprehensive documentation for VAPORA, an intelligent development orchestration platform built entirely in Rust.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" id="highlight-css" href="../highlight.css">
<link rel="stylesheet" id="tomorrow-night-css" href="../tomorrow-night.css">
<link rel="stylesheet" id="ayu-highlight-css" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<!-- Provide site root and default themes to javascript -->
<script>
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "dark";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="mdbook-help-container">
<div id="mdbook-help-popup">
<h2 class="mdbook-help-title">Keyboard shortcuts</h2>
<div>
<p>Press <kbd></kbd> or <kbd></kbd> to navigate between chapters</p>
<p>Press <kbd>S</kbd> or <kbd>/</kbd> to search in the book</p>
<p>Press <kbd>?</kbd> to show this help</p>
<p>Press <kbd>Esc</kbd> to hide this help</p>
</div>
</div>
</div>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
let theme = localStorage.getItem('mdbook-theme');
let sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
const default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? default_dark_theme : default_light_theme;
let theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('light')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
let sidebar = null;
const sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="default_theme">Auto</button></li>
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search (`/`)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="/ s" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">VAPORA Platform Documentation</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/vapora-platform/vapora" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/vapora-platform/vapora/edit/main/docs/src/../features/overview.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="-vapora-features"><a class="header" href="#-vapora-features">🎯 Vapora Features</a></h1>
<div align="center">
<img src="imgs/vapora_v.svg" alt="Vapora Logo" width="300">
<h2 id="-development-flows--when-teams-and-ai-agents-orchestrate"><a class="header" href="#-development-flows--when-teams-and-ai-agents-orchestrate">🌟 Development flows <br> when teams and AI agents <strong>orchestrate</strong></a></h2>
</div>
<p>Vapora is an <strong>intelligent development orchestration platform</strong> where teams and AI agents work together in continuous flow. It automates and coordinates software development lifecycle—from design and implementation through testing, documentation, and deployment—while maintaining full context and enabling intelligent decision-making at every step.</p>
<p>Unlike fragmented tool ecosystems, Vapora is a single, self-contained system where developers and AI agents collaborate seamlessly, complexity evaporates, and development flows naturally.</p>
<h3 id="core-value-proposition"><a class="header" href="#core-value-proposition">Core Value Proposition</a></h3>
<ul>
<li><strong>Unifies task management</strong> with intelligent code context (all in one place)</li>
<li><strong>Reduces context switching</strong> for developers (no tool jumping)</li>
<li><strong>Makes team knowledge</strong> discoverable and actionable (searchable, organized)</li>
<li><strong>Enables AI agents</strong> as first-class team members (12 specialized roles)</li>
<li><strong>Self-hosted</strong> with cloud-agnostic deployment (own your data)</li>
<li><strong>Multi-tenant by design</strong> with fine-grained access control (shared platforms)</li>
</ul>
<h3 id="target-users"><a class="header" href="#target-users">Target Users</a></h3>
<ul>
<li><strong>Development teams</strong> needing better coordination and visibility</li>
<li><strong>Organizations</strong> wanting AI assistance embedded in workflow</li>
<li><strong>Platform engineers</strong> managing shared development infrastructure</li>
<li><strong>Enterprise teams</strong> requiring on-premise deployment and data control</li>
<li><strong>Teams at scale</strong> needing fine-grained permissions and multi-tenancy</li>
</ul>
<hr />
<h2 id="table-of-contents"><a class="header" href="#table-of-contents">Table of Contents</a></h2>
<ol>
<li><a href="#project-management">Project Management</a></li>
<li><a href="#ai-powered-intelligence">AI-Powered Intelligence</a></li>
<li><a href="#multi-agent-coordination">Multi-Agent Coordination</a>
<ul>
<li><a href="#learning-based-agent-selection-phase-53">Learning-Based Agent Selection (Phase 5.3)</a></li>
<li><a href="#budget-enforcement--cost-optimization-phase-54">Budget Enforcement &amp; Cost Optimization (Phase 5.4)</a></li>
</ul>
</li>
<li><a href="#knowledge-management">Knowledge Management</a></li>
<li><a href="#cloud-native--deployment">Cloud-Native &amp; Deployment</a></li>
<li><a href="#security--multi-tenancy">Security &amp; Multi-Tenancy</a></li>
<li><a href="#technology-stack">Technology Stack</a></li>
<li><a href="#optional-integrations">Optional Integrations</a></li>
</ol>
<hr />
<h2 id="-project-management"><a class="header" href="#-project-management">🎨 Project Management</a></h2>
<h3 id="kanban-board-glassmorphism-ui"><a class="header" href="#kanban-board-glassmorphism-ui">Kanban Board (Glassmorphism UI)</a></h3>
<p><strong>Solves</strong>: Context Switching Infinito</p>
<p>The centerpiece of Vapora is a beautiful, responsive Kanban board with real-time collaboration:</p>
<ul>
<li><strong>Intuitive columns</strong>: Todo → Doing → Review → Done (customizable)</li>
<li><strong>Drag &amp; drop</strong> task reordering with instant sync across team</li>
<li><strong>Glassmorphism design</strong> with vaporwave aesthetics (modern, beautiful UX)</li>
<li><strong>Optimistic updates</strong> (UI responds instantly, server syncs in background)</li>
<li><strong>Rich task cards</strong> featuring:
<ul>
<li>Title, description, priority levels, tags</li>
<li>Assigned team members (developers + AI agents)</li>
<li>Subtasks and dependency chains</li>
<li>Comments and threaded discussions</li>
<li>Time estimates and actual time spent</li>
<li>Code snippets and inline documentation</li>
</ul>
</li>
</ul>
<h3 id="unified-task-lifecycle"><a class="header" href="#unified-task-lifecycle">Unified Task Lifecycle</a></h3>
<p><strong>Solves</strong>: Task Management Sin Inteligencia</p>
<p>Manage all project work from a single source of truth:</p>
<ul>
<li><strong>Work items</strong> (tasks, bugs, features, chores)</li>
<li><strong>Developers + AI agents</strong> treated equally as team members</li>
<li><strong>Task templates</strong> for recurring workflow patterns</li>
<li><strong>Bulk operations</strong> (reorder, assign, tag, bulk updates)</li>
<li><strong>Advanced search &amp; filters</strong>:
<ul>
<li>By assignee, status, priority, tags, due date</li>
<li>Custom filters (created by, mentioned in, blocked by)</li>
<li>Saved search queries</li>
</ul>
</li>
<li><strong>Multiple views</strong>:
<ul>
<li>Kanban view (visual workflow)</li>
<li>List view (text-focused)</li>
<li>Timeline/Gantt (dependencies and critical path)</li>
<li>Calendar view (deadline-focused)</li>
<li>Table view (spreadsheet-like)</li>
</ul>
</li>
</ul>
<h3 id="real-time-collaboration"><a class="header" href="#real-time-collaboration">Real-Time Collaboration</a></h3>
<ul>
<li><strong>Live presence</strong> (see who's viewing/editing in real-time)</li>
<li><strong>Collaborative comments</strong> with threads and mentions</li>
<li><strong>Notifications</strong> (task assigned, commented, updated, blocked)</li>
<li><strong>Activity timeline</strong> (audit trail of who did what, when)</li>
<li><strong>@mentions</strong> for developers and agents</li>
<li><strong>Task watchers</strong> (subscribe to updates)</li>
</ul>
<h3 id="team--project-organization"><a class="header" href="#team--project-organization">Team &amp; Project Organization</a></h3>
<ul>
<li><strong>Multiple projects</strong> per workspace</li>
<li><strong>Team members</strong> (both humans and AI agents)</li>
<li><strong>Custom roles</strong> with granular permissions</li>
<li><strong>Team dashboards</strong> with metrics and burndown</li>
<li><strong>Sprint planning</strong> (if using Agile workflow)</li>
<li><strong>Backlog management</strong> with story points estimation</li>
</ul>
<hr />
<h2 id="-ai-powered-intelligence"><a class="header" href="#-ai-powered-intelligence">🧠 AI-Powered Intelligence</a></h2>
<h3 id="intelligent-code-context"><a class="header" href="#intelligent-code-context">Intelligent Code Context</a></h3>
<p><strong>Solves</strong>: Knowledge Fragmentado, Task Management Sin Inteligencia</p>
<p>Tasks are more than descriptions—they carry full code context:</p>
<ul>
<li><strong>Automatic code analysis</strong> when tasks reference files or modules</li>
<li><strong>Code snippets</strong> displayed inline with syntax highlighting</li>
<li><strong>Complexity metrics</strong>:
<ul>
<li>Cyclomatic complexity</li>
<li>Cognitive complexity</li>
<li>Test coverage by module</li>
</ul>
</li>
<li><strong>Pattern detection</strong>:
<ul>
<li>Detect anti-patterns and suggest improvements</li>
<li>Identify code duplication</li>
<li>Highlight risky changes</li>
</ul>
</li>
<li><strong>Dependency visualization</strong>:
<ul>
<li>Module dependency graphs</li>
<li>Impact analysis (what breaks if this changes?)</li>
<li>Circular dependency detection</li>
</ul>
</li>
<li><strong>Architecture insights</strong>:
<ul>
<li>Layer violations</li>
<li>Service coupling analysis</li>
<li>Component relationships</li>
</ul>
</li>
</ul>
<h3 id="universal-search-with-rag"><a class="header" href="#universal-search-with-rag">Universal Search with RAG</a></h3>
<p><strong>Solves</strong>: Knowledge Fragmentado</p>
<p>Find any information across your entire knowledge base instantly:</p>
<ul>
<li>
<p><strong>Semantic search</strong> powered by RAG (Retrieval-Augmented Generation):</p>
<ul>
<li>Search task descriptions, comments, discussions</li>
<li>Find design decisions and ADRs</li>
<li>Locate relevant code snippets</li>
<li>Find previous solutions to similar problems</li>
<li>Natural language queries: "How do we handle user authentication?"</li>
</ul>
</li>
<li>
<p><strong>Local embeddings</strong> (fastembed) - privacy-first, no data sent to external services</p>
</li>
<li>
<p><strong>Smart ranking</strong>:</p>
<ul>
<li>By relevance (semantic similarity)</li>
<li>By recency (most recent first)</li>
<li>By authority (who wrote it, how many references)</li>
</ul>
</li>
<li>
<p><strong>Context-aware results</strong>:</p>
<ul>
<li>Related tasks automatically suggested</li>
<li>Similar solutions from past projects</li>
<li>Relevant team members who worked on similar issues</li>
</ul>
</li>
</ul>
<h3 id="ai-agent-capabilities"><a class="header" href="#ai-agent-capabilities">AI Agent Capabilities</a></h3>
<p>Every team member is empowered by AI assistance:</p>
<ul>
<li>
<p><strong>Code-level AI suggestions</strong>:</p>
<ul>
<li>Refactoring recommendations</li>
<li>Performance optimization hints</li>
<li>Test case suggestions</li>
<li>Documentation generation</li>
</ul>
</li>
<li>
<p><strong>Task-level automation</strong>:</p>
<ul>
<li>Auto-generate task descriptions</li>
<li>Suggest related tasks and dependencies</li>
<li>Estimate effort based on complexity</li>
<li>Recommend assignees based on expertise</li>
</ul>
</li>
<li>
<p><strong>Workflow intelligence</strong>:</p>
<ul>
<li>Predict blockers before they happen</li>
<li>Suggest task ordering for efficiency</li>
<li>Identify bottlenecks in workflow</li>
<li>Recommend process improvements</li>
</ul>
</li>
</ul>
<hr />
<h2 id="-multi-agent-coordination"><a class="header" href="#-multi-agent-coordination">🤖 Multi-Agent Coordination</a></h2>
<h3 id="specialized-agents-customizable--tunable"><a class="header" href="#specialized-agents-customizable--tunable">Specialized Agents (Customizable &amp; Tunable)</a></h3>
<p><strong>Solves</strong>: Task Management Sin Inteligencia, Dev-Ops Handoff Manual, Pipeline Orchestration</p>
<p>Vapora comes with specialized agents that can be customized, extended, or selected based on your team's needs. Default roles include:</p>
<div class="table-wrapper"><table><thead><tr><th>Agent</th><th>Role</th><th>Specialization</th></tr></thead><tbody>
<tr><td><strong>Architect</strong></td><td>System design</td><td>Architecture decisions, ADRs, design reviews</td></tr>
<tr><td><strong>Developer</strong></td><td>Implementation</td><td>Code writing, refactoring, feature building</td></tr>
<tr><td><strong>CodeReviewer</strong></td><td>Quality gate</td><td>Code review, quality checks, suggestions</td></tr>
<tr><td><strong>Tester</strong></td><td>Quality assurance</td><td>Test writing, test execution, QA automation</td></tr>
<tr><td><strong>Documenter</strong></td><td>Knowledge keeper</td><td>Documentation, guides, API docs, root files</td></tr>
<tr><td><strong>Marketer</strong></td><td>Communications</td><td>Release notes, announcements, messaging</td></tr>
<tr><td><strong>Presenter</strong></td><td>Visualization</td><td>Presentations, demos, slide decks</td></tr>
<tr><td><strong>DevOps</strong></td><td>Deployment</td><td>Pipelines, deployment automation, infrastructure</td></tr>
<tr><td><strong>Monitor</strong></td><td>Operations</td><td>Health checks, alerting, observability</td></tr>
<tr><td><strong>Security</strong></td><td>Compliance</td><td>Security reviews, vulnerability scanning</td></tr>
<tr><td><strong>ProjectManager</strong></td><td>Planning</td><td>Roadmapping, tracking, prioritization</td></tr>
<tr><td><strong>DecisionMaker</strong></td><td>Resolution</td><td>Conflict resolution, decision arbitration</td></tr>
</tbody></table>
</div>
<h3 id="agent-orchestration--workflows"><a class="header" href="#agent-orchestration--workflows">Agent Orchestration &amp; Workflows</a></h3>
<p><strong>Solves</strong>: Dev-Ops Handoff Manual, Task Management Sin Inteligencia</p>
<p>Agents work together seamlessly without manual coordination:</p>
<ul>
<li>
<p><strong>Parallel execution</strong>: Multiple agents work on different aspects simultaneously</p>
<ul>
<li>Developer writes code while Tester writes tests</li>
<li>Documenter updates docs while DevOps prepares deployment</li>
</ul>
</li>
<li>
<p><strong>Smart task assignment</strong>:</p>
<ul>
<li>Based on agent expertise and availability</li>
<li>Consider agent workload and queue depth</li>
<li>Respect skill requirements of the task</li>
</ul>
</li>
<li>
<p><strong>Dependency management</strong>:</p>
<ul>
<li>Automatic task ordering based on dependencies</li>
<li>Deadlock detection and resolution</li>
<li>Critical path highlighting</li>
</ul>
</li>
<li>
<p><strong>Approval gates</strong>:</p>
<ul>
<li>Security agent approval for sensitive changes</li>
<li>Lead review approval before deployment</li>
<li>Multi-stage review workflows</li>
</ul>
</li>
<li>
<p><strong>Intelligent fallback</strong>:</p>
<ul>
<li>If agent fails, escalate or reassign</li>
<li>Use backup LLM model if primary fails</li>
<li>Retry with exponential backoff</li>
</ul>
</li>
<li>
<p><strong>Learning &amp; cost optimization</strong> (Phase 5.3 + 5.4):</p>
<ul>
<li>Agents learn from execution history (per-task-type expertise)</li>
<li>Recent performance weighted 3x (last 7 days) for adaptive selection</li>
<li>Budget enforcement per role with automatic fallback</li>
<li>Cost-efficient routing with quality/cost ratio optimization</li>
<li>Real-time metrics and alerts via Prometheus/Grafana</li>
</ul>
</li>
</ul>
<h3 id="learning-based-agent-selection-phase-53"><a class="header" href="#learning-based-agent-selection-phase-53">Learning-Based Agent Selection (Phase 5.3)</a></h3>
<p><strong>Solves</strong>: Inefficient agent assignment, static task routing</p>
<p>Agents improve continuously from execution history:</p>
<ul>
<li>
<p><strong>Per-task-type learning profiles</strong>:</p>
<ul>
<li>Each agent builds expertise scores for different task types</li>
<li>Success rate calculated from Knowledge Graph execution history</li>
<li>Confidence scoring prevents small-sample overfitting</li>
</ul>
</li>
<li>
<p><strong>Recency bias for adaptive selection</strong>:</p>
<ul>
<li>Recent executions weighted 3x (last 7 days)</li>
<li>Exponential decay prevents "permanent reputation"</li>
<li>Allows agents to recover from bad performance periods</li>
</ul>
</li>
<li>
<p><strong>Intelligent scoring formula</strong>:</p>
<ul>
<li><code>final_score = 0.3*load + 0.5*expertise + 0.2*confidence</code></li>
<li>Balances current workload with historical success</li>
<li>Confidence dampens high variance from few executions</li>
</ul>
</li>
<li>
<p><strong>Learning curve visualization</strong>:</p>
<ul>
<li>Track expertise improvement over time</li>
<li>Time-series analysis with daily/weekly aggregation</li>
<li>Identify agents needing additional training or tuning</li>
</ul>
</li>
</ul>
<h3 id="budget-enforcement--cost-optimization-phase-54"><a class="header" href="#budget-enforcement--cost-optimization-phase-54">Budget Enforcement &amp; Cost Optimization (Phase 5.4)</a></h3>
<p><strong>Solves</strong>: Runaway LLM costs, unpredictable spending</p>
<p>Control costs with intelligent budget management:</p>
<ul>
<li>
<p><strong>Per-role budget limits</strong>:</p>
<ul>
<li>Configure monthly and weekly spending caps (in cents)</li>
<li>Separate budgets for Architect, Developer, Reviewer, etc.</li>
<li>Automatic weekly/monthly resets with carry-over option</li>
</ul>
</li>
<li>
<p><strong>Three-tier enforcement</strong>:</p>
<ol>
<li><strong>Normal operation</strong>: Rule-based routing with cost awareness</li>
<li><strong>Near threshold (&gt;80%)</strong>: Prefer cost-efficient providers</li>
<li><strong>Budget exceeded</strong>: Automatic fallback to cheaper alternatives</li>
</ol>
</li>
<li>
<p><strong>Cost-efficient provider ranking</strong>:</p>
<ul>
<li>Calculate quality/cost ratio: <code>(quality * 100) / (cost + 1)</code></li>
<li>Quality from historical success rates per provider</li>
<li>Optimizes for value, not just lowest cost</li>
</ul>
</li>
<li>
<p><strong>Fallback chain ordering</strong>:</p>
<ul>
<li>Ollama (free local) → Gemini (cheap cloud) → OpenAI → Claude</li>
<li>Ensures tasks complete even when budget exhausted</li>
<li>Maintains quality at acceptable degradation level</li>
</ul>
</li>
<li>
<p><strong>Real-time monitoring</strong>:</p>
<ul>
<li>Prometheus metrics: budget remaining, utilization, fallback triggers</li>
<li>Grafana dashboards: visual budget tracking per role</li>
<li>Alerts at 80%, 90%, 100% utilization thresholds</li>
</ul>
</li>
<li>
<p><strong>Cost tracking granularity</strong>:</p>
<ul>
<li>Per provider (Claude, OpenAI, Gemini, Ollama)</li>
<li>Per agent role (Architect, Developer, etc.)</li>
<li>Per task type (coding, review, documentation)</li>
<li>Per token (input/output separated)</li>
</ul>
</li>
</ul>
<h3 id="workflow-definition--execution"><a class="header" href="#workflow-definition--execution">Workflow Definition &amp; Execution</a></h3>
<p>Define complex workflows as YAML, Vapora executes automatically:</p>
<pre><code class="language-yaml">workflow:
name: "Feature Implementation"
stages:
- architect:
task: "Design feature architecture"
requires: [issue_description]
- parallel:
- develop:
task: "Implement feature"
requires: [architecture]
- test_planning:
task: "Plan test strategy"
requires: [architecture]
- test:
task: "Write and run tests"
requires: [develop, test_planning]
- review:
task: "Code review"
requires: [develop]
approval_required: true
- document:
task: "Update docs"
requires: [develop]
- deploy:
task: "Deploy to staging"
requires: [review, test, document]
</code></pre>
<p>Vapora handles:</p>
<ul>
<li><strong>State machine execution</strong> (state transitions with validation)</li>
<li><strong>Conditional branches</strong> (if/else logic)</li>
<li><strong>Parallel stages</strong> (multiple agents work simultaneously)</li>
<li><strong>Approval gates</strong> (halt until approval received)</li>
<li><strong>Error handling</strong> (catch failures, retry, escalate)</li>
<li><strong>Rollback on failure</strong> (revert to previous state if needed)</li>
<li><strong>Real-time progress tracking</strong> (live dashboard with WebSocket updates)</li>
</ul>
<h3 id="agent-to-agent-communication"><a class="header" href="#agent-to-agent-communication">Agent-to-Agent Communication</a></h3>
<ul>
<li><strong>NATS JetStream</strong> pub/sub messaging</li>
<li><strong>Request/Reply pattern</strong> for synchronous operations</li>
<li><strong>Broadcast events</strong> (task completed, blocker detected, etc.)</li>
<li><strong>Shared context</strong> via Model Context Protocol (MCP)</li>
<li><strong>Complete audit trail</strong> of all agent interactions</li>
</ul>
<hr />
<h2 id="-knowledge-management"><a class="header" href="#-knowledge-management">📚 Knowledge Management</a></h2>
<h3 id="session-lifecycle-manager"><a class="header" href="#session-lifecycle-manager">Session Lifecycle Manager</a></h3>
<p><strong>Solves</strong>: Knowledge Fragmentado</p>
<p>Every work session is automatically organized and searchable:</p>
<ul>
<li>
<p><strong>Automatic organization</strong> of all session artifacts:</p>
<ul>
<li>Tasks created/updated</li>
<li>Decisions made</li>
<li>Code changes</li>
<li>Discussions and comments</li>
<li>Generated documentation</li>
</ul>
</li>
<li>
<p><strong>Session metadata</strong>:</p>
<ul>
<li>Date and time</li>
<li>Participants (humans + agents)</li>
<li>Goals and outcomes</li>
<li>Key decisions</li>
<li>Issues discovered</li>
</ul>
</li>
<li>
<p><strong>Decision extraction</strong>:</p>
<ul>
<li>Auto-generate Architecture Decision Records (ADRs) from discussions</li>
<li>Capture "why" behind decisions</li>
<li>Link to related decisions</li>
<li>Track decision impact</li>
</ul>
</li>
<li>
<p><strong>Context preservation</strong>:</p>
<ul>
<li>Complete task history</li>
<li>All comments and discussions</li>
<li>Code changes and diffs</li>
<li>Referenced resources</li>
</ul>
</li>
<li>
<p><strong>Searchable archive</strong>:</p>
<ul>
<li>Find past sessions by topic</li>
<li>Discover who worked on similar problems</li>
<li>Understand project history and evolution</li>
<li>Learn from past decisions</li>
</ul>
</li>
</ul>
<h3 id="root-files-keeper"><a class="header" href="#root-files-keeper">Root Files Keeper</a></h3>
<p><strong>Solves</strong>: Knowledge Fragmentado, Dev-Ops Handoff Manual</p>
<p>Critical project files stay accurate and up-to-date automatically:</p>
<ul>
<li>
<p><strong>README.md</strong> - Always reflects current project state</p>
<ul>
<li>Quick start instructions (updated when setup changes)</li>
<li>Feature list (reflects completed features)</li>
<li>Architecture overview (updated when architecture changes)</li>
<li>Latest version and changelog link</li>
</ul>
</li>
<li>
<p><strong>CHANGELOG.md</strong> - Complete release history</p>
<ul>
<li>Auto-populated from releases and completed features</li>
<li>Organized by version</li>
<li>Breaking changes highlighted</li>
</ul>
</li>
<li>
<p><strong>ROADMAP.md</strong> - Future direction and planning</p>
<ul>
<li>Planned features and their status</li>
<li>Timeline and priorities</li>
<li>Known issues and limitations</li>
</ul>
</li>
<li>
<p><strong>CONTRIBUTING.md</strong> - Development guidelines</p>
<ul>
<li>Setup instructions</li>
<li>Development workflow</li>
<li>Code style guidelines</li>
<li>Testing requirements</li>
<li>Pull request process</li>
</ul>
</li>
<li>
<p><strong>Additional files</strong>:</p>
<ul>
<li>SECURITY.md (security policies)</li>
<li>API.md (API documentation)</li>
<li>ARCHITECTURE.md (system design)</li>
<li>Custom files per project</li>
</ul>
</li>
<li>
<p><strong>Smart updates</strong>:</p>
<ul>
<li>Backup before any update (never lose old content)</li>
<li>Diff tracking (see what changed)</li>
<li>Version control (roll back if needed)</li>
<li>Human review optional (approve updates before publishing)</li>
</ul>
</li>
</ul>
<h3 id="documentation-lifecycle"><a class="header" href="#documentation-lifecycle">Documentation Lifecycle</a></h3>
<p><strong>Solves</strong>: Knowledge Fragmentado</p>
<p>All documentation is continuously organized and indexed:</p>
<ul>
<li>
<p><strong>Automatic classification</strong>:</p>
<ul>
<li>Specifications and design docs</li>
<li>Architecture Decision Records (ADRs)</li>
<li>How-to guides and tutorials</li>
<li>API documentation</li>
<li>Troubleshooting guides</li>
<li>Meeting notes and decisions</li>
</ul>
</li>
<li>
<p><strong>Intelligent organization</strong>:</p>
<ul>
<li>By category, project, date</li>
<li>Automatic tagging</li>
<li>Relationship linking</li>
</ul>
</li>
<li>
<p><strong>RAG indexing</strong>:</p>
<ul>
<li>All docs become searchable</li>
<li>Part of semantic search results</li>
<li>Linked to related code and tasks</li>
</ul>
</li>
<li>
<p><strong>Auto-archival</strong>:</p>
<ul>
<li>Old docs marked as deprecated</li>
<li>Obsolete docs archived (not deleted)</li>
<li>Version history preserved</li>
</ul>
</li>
<li>
<p><strong>Presentation generation</strong>:</p>
<ul>
<li>Auto-generate slide decks from docs</li>
<li>Create summary presentations</li>
<li>Export to multiple formats</li>
</ul>
</li>
<li>
<p><strong>Impact tracking</strong>:</p>
<ul>
<li>Which code implements which spec?</li>
<li>Which ADR impacts this feature?</li>
<li>Doc change history</li>
</ul>
</li>
</ul>
<hr />
<h2 id="-cloud-native--deployment"><a class="header" href="#-cloud-native--deployment">☸️ Cloud-Native &amp; Deployment</a></h2>
<h3 id="standalone-local-development"><a class="header" href="#standalone-local-development">Standalone Local Development</a></h3>
<p><strong>Solves</strong>: Context Switching Infinito, Dev-Ops Handoff Manual</p>
<p>Get started in 5 minutes with Docker Compose:</p>
<pre><code class="language-bash">git clone https://github.com/vapora-platform/vapora.git
cd vapora
docker compose up -d
# Access:
# Frontend: http://localhost:3000
# Backend API: http://localhost:8080
# Database: http://localhost:8000
</code></pre>
<p>Includes everything out of the box:</p>
<ul>
<li><strong>Frontend</strong> (Leptos WASM application)</li>
<li><strong>Backend API</strong> (Axum REST + WebSocket)</li>
<li><strong>Database</strong> (SurrealDB)</li>
<li><strong>Message queue</strong> (NATS JetStream)</li>
<li><strong>Cache layer</strong> (Redis)</li>
</ul>
<p>Perfect for:</p>
<ul>
<li>Local development</li>
<li>Team collaboration on local network</li>
<li>Small team deployments</li>
<li>Testing before Kubernetes deployment</li>
</ul>
<h3 id="kubernetes-deployment"><a class="header" href="#kubernetes-deployment">Kubernetes Deployment</a></h3>
<p>Deploy to any Kubernetes cluster—no vendor lock-in:</p>
<p><strong>Supported platforms</strong>:</p>
<ul>
<li>Vanilla Kubernetes</li>
<li>Amazon EKS</li>
<li>Google GKE</li>
<li>Azure AKS</li>
<li>DigitalOcean Kubernetes</li>
<li>Self-hosted K3s, RKE2</li>
<li>On-premise Kubernetes</li>
</ul>
<p><strong>Deployment approaches</strong>:</p>
<ol>
<li>
<p><strong>Helm Charts</strong> (traditional Kubernetes)</p>
<ul>
<li>Standard Helm values</li>
<li>Customizable for your environment</li>
<li>GitOps-friendly</li>
</ul>
</li>
<li>
<p><strong>Provisioning</strong> (Infrastructure as Code)</p>
<ul>
<li>KCL-based configuration</li>
<li>Declarative infrastructure</li>
<li>Complete cluster setup automation</li>
<li>Integrated with existing Provisioning platform</li>
</ul>
</li>
</ol>
<h3 id="scaling--high-availability"><a class="header" href="#scaling--high-availability">Scaling &amp; High Availability</a></h3>
<ul>
<li><strong>Auto-scaling agents</strong> (HPA based on queue depth)</li>
<li><strong>Load balancing</strong> across service replicas</li>
<li><strong>Database replication</strong> (SurrealDB multi-node)</li>
<li><strong>Distributed caching</strong> (Redis cluster)</li>
<li><strong>Message queue scaling</strong> (NATS cluster)</li>
<li><strong>Zero-downtime deployments</strong> (rolling updates)</li>
</ul>
<h3 id="infrastructure-as-code"><a class="header" href="#infrastructure-as-code">Infrastructure as Code</a></h3>
<p>Define infrastructure declaratively:</p>
<pre><code class="language-toml">[cluster]
name = "vapora-prod"
cloud = "aws"
region = "us-west-2"
availability_zones = 3
[services.backend]
replicas = 3
cpu = "500m"
memory = "1Gi"
[services.agents]
replicas = 5 # scales up to 20 based on load
cpu = "1000m"
memory = "2Gi"
[storage]
database = "50Gi"
cache = "10Gi"
</code></pre>
<hr />
<h2 id="-security--multi-tenancy"><a class="header" href="#-security--multi-tenancy">🔐 Security &amp; Multi-Tenancy</a></h2>
<h3 id="authentication--authorization"><a class="header" href="#authentication--authorization">Authentication &amp; Authorization</a></h3>
<ul>
<li><strong>JWT-based authentication</strong> (API tokens, session tokens)</li>
<li><strong>Cedar policy engine</strong> for fine-grained access control</li>
<li><strong>Flexible roles</strong> (Admin, Lead, Developer, Agent, Viewer)</li>
<li><strong>Custom policies</strong> (e.g., "only Architect agents can approve ADRs")</li>
<li><strong>Team-based permissions</strong> (fine-grained per team/project)</li>
<li><strong>Audit logging</strong> (all actions logged with who, what, when)</li>
</ul>
<h3 id="multi-tenancy-by-design"><a class="header" href="#multi-tenancy-by-design">Multi-Tenancy by Design</a></h3>
<p><strong>Solves</strong>: Shared platform infrastructure for platform teams</p>
<ul>
<li><strong>Namespace isolation</strong> (each tenant in separate namespace)</li>
<li><strong>Database scopes</strong> (SurrealDB native scoping for data isolation)</li>
<li><strong>Network policies</strong> (prevent cross-tenant traffic)</li>
<li><strong>Resource quotas</strong> (enforce limits per tenant)</li>
<li><strong>Separate secrets</strong> per tenant (no credential leakage)</li>
<li><strong>Isolated storage</strong> (persistent volumes per tenant)</li>
</ul>
<h3 id="data-protection"><a class="header" href="#data-protection">Data Protection</a></h3>
<ul>
<li><strong>Encryption at rest</strong> (TLS certificates, encrypted volumes)</li>
<li><strong>Encryption in transit</strong> (mTLS between services)</li>
<li><strong>Secrets management</strong> (RustyVault integration)</li>
<li><strong>API key rotation</strong> (automatic and manual)</li>
<li><strong>Data backup</strong> (automated, encrypted, off-site)</li>
<li><strong>Data deletion</strong> (GDPR-compliant, with audit trail)</li>
</ul>
<h3 id="compliance-ready"><a class="header" href="#compliance-ready">Compliance Ready</a></h3>
<ul>
<li><strong>Audit trails</strong> (immutable logs of all actions)</li>
<li><strong>Compliance policies</strong> (SOC 2, HIPAA, GDPR)</li>
<li><strong>Access logs</strong> (who accessed what, when)</li>
<li><strong>Change tracking</strong> (what changed, who changed it)</li>
<li><strong>Data residency</strong> (control where data is stored)</li>
<li><strong>Compliance reports</strong> (auto-generate audit reports)</li>
</ul>
<hr />
<h2 id="-technology-stack"><a class="header" href="#-technology-stack">🛠️ Technology Stack</a></h2>
<h3 id="backend"><a class="header" href="#backend">Backend</a></h3>
<ul>
<li><strong>Rust 1.75+</strong> - Performance, memory safety, concurrency</li>
<li><strong>Axum 0.7</strong> - Fast, ergonomic web framework</li>
<li><strong>SurrealDB 1.8</strong> - Multi-model database with built-in scoping for multi-tenancy</li>
<li><strong>NATS JetStream</strong> - High-performance message queue for agent coordination</li>
<li><strong>Tokio</strong> - Async runtime for concurrent operations</li>
</ul>
<h3 id="frontend"><a class="header" href="#frontend">Frontend</a></h3>
<ul>
<li><strong>Leptos 0.6</strong> - Reactive Rust framework for WASM</li>
<li><strong>UnoCSS</strong> - Atomic CSS for instant, on-demand styling</li>
<li><strong>thaw</strong> - Component library</li>
<li><strong>leptos-use</strong> - Reactive utilities</li>
</ul>
<h3 id="agents--llm"><a class="header" href="#agents--llm">Agents &amp; LLM</a></h3>
<ul>
<li><strong>Rig</strong> - LLM agent framework with tool calling</li>
<li><strong>NATS JetStream</strong> - Inter-agent coordination and messaging</li>
<li><strong>Cedar</strong> - Policy engine for fine-grained RBAC</li>
<li><strong>MCP Gateway</strong> - Model Context Protocol for plugin extensibility</li>
<li><strong>LLM support</strong>: Claude, OpenAI, Google Gemini, Ollama (local)</li>
<li><strong>fastembed</strong> - Local embeddings for RAG (privacy-first)</li>
</ul>
<h3 id="infrastructure"><a class="header" href="#infrastructure">Infrastructure</a></h3>
<ul>
<li><strong>Kubernetes</strong> - Orchestration (K3s, RKE2, vanilla, managed)</li>
<li><strong>Istio</strong> - Service mesh (mTLS, traffic management, observability)</li>
<li><strong>Rook Ceph</strong> - Distributed storage (high availability)</li>
<li><strong>Tekton</strong> - CI/CD pipelines (if using Provisioning)</li>
<li><strong>RustyVault</strong> - Secrets management</li>
<li><strong>Prometheus + Grafana</strong> - Monitoring and alerting</li>
<li><strong>Loki</strong> - Log aggregation</li>
<li><strong>Tempo</strong> - Distributed tracing</li>
<li><strong>Zot</strong> - OCI registry (lightweight artifact storage)</li>
</ul>
<hr />
<h2 id="-metrics--monitoring"><a class="header" href="#-metrics--monitoring">📊 Metrics &amp; Monitoring</a></h2>
<h3 id="built-in-dashboards"><a class="header" href="#built-in-dashboards">Built-in Dashboards</a></h3>
<ul>
<li><strong>Project overview</strong>: Tasks, completion rate, team velocity</li>
<li><strong>Agent metrics</strong>: Execution time, token usage, error rates</li>
<li><strong>Team burndown</strong>: Sprint progress, velocity trends</li>
<li><strong>Code metrics</strong>: Complexity, coverage, quality scores</li>
<li><strong>Deployment status</strong>: Success rates, lead time, cycle time</li>
</ul>
<h3 id="observability"><a class="header" href="#observability">Observability</a></h3>
<ul>
<li><strong>Structured logging</strong> (JSON format, searchable)</li>
<li><strong>Distributed tracing</strong> (OpenTelemetry compatible)</li>
<li><strong>Metrics</strong> (Prometheus format)</li>
<li><strong>Health checks</strong> (liveness and readiness probes)</li>
<li><strong>Custom dashboards</strong> (build your own)</li>
<li><strong>Alerting</strong> (notifications when thresholds exceeded)</li>
</ul>
<hr />
<h2 id="-roadmap-features-future"><a class="header" href="#-roadmap-features-future">🚀 Roadmap Features (Future)</a></h2>
<ul>
<li><strong>Mobile app</strong> for on-the-go task management</li>
<li><strong>IDE integrations</strong> (VS Code, JetBrains, Vim)</li>
<li><strong>Advanced AI</strong> (model fine-tuning per team)</li>
<li><strong>Custom agents</strong> (create domain-specific agents)</li>
<li><strong>Compliance automation</strong> (SOC 2, HIPAA, GDPR)</li>
<li><strong>Cost analytics</strong> (track agent execution costs)</li>
<li><strong>Agent marketplace</strong> (publish/share community agents)</li>
<li><strong>Managed hosting</strong> (Vapora Cloud option)</li>
<li><strong>Time tracking</strong> (automatic time estimation and tracking)</li>
<li><strong>Resource planning</strong> (capacity planning, workload balancing)</li>
</ul>
<hr />
<h2 id="-optional-integrations"><a class="header" href="#-optional-integrations">🔌 Optional Integrations</a></h2>
<p>Vapora is a complete, standalone platform. These integrations are <strong>optional</strong>—use them only if you want to connect with external systems:</p>
<h3 id="external-repository-sync"><a class="header" href="#external-repository-sync">External Repository Sync</a></h3>
<p>Optionally sync with external repositories:</p>
<ul>
<li><strong>Periodic sync</strong> (pull data from external sources)</li>
<li><strong>One-way or two-way</strong> sync (depending on use case)</li>
<li><strong>Conflict resolution</strong> (when both systems have changes)</li>
<li><strong>Mapping configuration</strong> (field mappings for different schemas)</li>
</ul>
<p>Examples:</p>
<ul>
<li>Sync tasks from external issue tracker</li>
<li>Sync pull requests to see deployment readiness</li>
<li>Sync documentation from wiki</li>
</ul>
<p><strong>Note</strong>: Vapora's native task management, repository browser, and documentation system eliminate the need for external tools for most teams.</p>
<h3 id="external-llm-providers"><a class="header" href="#external-llm-providers">External LLM Providers</a></h3>
<p>Use Vapora's multi-LLM router with external providers:</p>
<ul>
<li><strong>Claude</strong> (Anthropic)</li>
<li><strong>GPT-4 / GPT-4o</strong> (OpenAI)</li>
<li><strong>Gemini</strong> (Google)</li>
<li><strong>Ollama</strong> (local models)</li>
</ul>
<p>Vapora intelligently routes tasks to the optimal provider based on:</p>
<ul>
<li>Task complexity</li>
<li>Required latency</li>
<li>Cost considerations</li>
<li>Model capabilities</li>
</ul>
<p><strong>Note</strong>: All LLM access is configured via API keys in Vapora's secrets management. Your data stays within your deployment.</p>
<h3 id="mcp-plugin-system"><a class="header" href="#mcp-plugin-system">MCP Plugin System</a></h3>
<p>Extend Vapora capabilities via Model Context Protocol (MCP):</p>
<ul>
<li><strong>Standard plugin interface</strong> for tools and resources</li>
<li><strong>Community plugins</strong> for common integrations</li>
<li><strong>Custom plugins</strong> for domain-specific needs</li>
<li><strong>Secure execution</strong> (sandboxed)</li>
</ul>
<p>Examples of possible plugins:</p>
<ul>
<li>External repository browser</li>
<li>Issue tracker sync</li>
<li>Documentation aggregator</li>
<li>Custom notification system</li>
</ul>
<h3 id="custom-webhooks--apis"><a class="header" href="#custom-webhooks--apis">Custom Webhooks &amp; APIs</a></h3>
<p>Integrate with external systems via APIs:</p>
<ul>
<li><strong>Outgoing webhooks</strong> (send events when tasks change)</li>
<li><strong>Incoming webhooks</strong> (receive updates from external systems)</li>
<li><strong>REST API</strong> (build custom integrations)</li>
<li><strong>GraphQL API</strong> (if using advanced queries)</li>
</ul>
<hr />
<h2 id="getting-started"><a class="header" href="#getting-started">Getting Started</a></h2>
<h3 id="for-individual-developers"><a class="header" href="#for-individual-developers">For Individual Developers</a></h3>
<ol>
<li><a href="./guides/QUICK_START.html">Quick Start Guide</a></li>
<li><a href="./docs/TASK_MANAGEMENT.html">Task Management Guide</a></li>
<li><a href="./docs/AI_AGENTS.html">AI Agent Features</a></li>
</ol>
<h3 id="for-development-teams"><a class="header" href="#for-development-teams">For Development Teams</a></h3>
<ol>
<li><a href="./guides/TEAM_SETUP.html">Team Setup Guide</a></li>
<li><a href="./docs/COLLABORATION.html">Collaboration Guide</a></li>
<li><a href="./docs/WORKFLOWS.html">Workflow Configuration</a></li>
</ol>
<h3 id="for-devopsplatform-teams"><a class="header" href="#for-devopsplatform-teams">For DevOps/Platform Teams</a></h3>
<ol>
<li><a href="./guides/DEPLOYMENT.html">Deployment Guide</a></li>
<li><a href="./guides/KUBERNETES.html">Kubernetes Setup</a></li>
<li><a href="./guides/MULTI_TENANCY.html">Multi-Tenancy Setup</a></li>
<li><a href="./docs/MONITORING.html">Monitoring &amp; Operations</a></li>
</ol>
<h3 id="for-extensibility"><a class="header" href="#for-extensibility">For Extensibility</a></h3>
<ol>
<li><a href="./docs/MCP_PLUGINS.html">MCP Plugin Guide</a></li>
<li><a href="./docs/API.html">API Reference</a></li>
<li><a href="./docs/WEBHOOKS.html">Webhook Documentation</a></li>
</ol>
<hr />
<h2 id="more-information"><a class="header" href="#more-information">More Information</a></h2>
<ul>
<li><strong>Website</strong>: https://vapora.dev</li>
<li><strong>Documentation</strong>: https://docs.vapora.dev</li>
<li><strong>GitHub</strong>: https://github.com/vapora-platform/vapora</li>
<li><strong>Community</strong>: https://discord.gg/vapora</li>
<li><strong>Issues &amp; Feedback</strong>: https://github.com/vapora-platform/vapora/issues</li>
</ul>
<hr />
<p><strong>Made with vaporwave dreams and Rust reality ✨</strong></p>
<p>Last updated: November 2025 | Version: 0.1.0 (Specification)</p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../../features/index.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../architecture/index.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../../features/index.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../architecture/index.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
</div>
</body>
</html>