SoluteLabs / Solution Architecture

One AI knowledge hub for everything bot.auto knows.

A single-tenant AI knowledge hub over Confluence, Slack, and Google Drive first, with the same adapter framework extending to your other third-party products and internal applications, and every answer cited, fresh, and backed by coverage you can audit.

DocumentBA-ARCH-001
Date2026-07-27
Prepared bySoluteLabs
Prepared forbot.auto
DeploymentSingle tenant, client VPC
ClassificationConfidential
Section 01 / Executive summary

The whole proposal on one page.

Where you are, what we propose, what changes, and what it takes to start.

Your situationbot.auto's knowledge lives across Confluence, Slack, Google Drive, and other third-party products, and getting an answer still depends on finding the right page or interrupting the right person. You asked for three things most AI tools cannot prove: all the information, the context behind it, and its freshness. Gmail stays out of scope for now, at your direction.
What we proposeA single-tenant AI knowledge hub running in your own cloud account, over Confluence, Slack, and Google Drive first, with an adapter framework that extends to your other third-party products and internal applications. Every answer is assembled from your content with per-claim citations and freshness timestamps; coverage is measured on a dashboard, not assumed.
Expected outcomeEvery employee gets cited, current answers in seconds instead of searches and interruptions. Your security team gets a system it can audit end to end. The platform becomes the foundation for analytical intelligence in Phase 2 and additional sources on your timetable.
InvestmentA fixed-fee discovery sprint (USD 5,000, one to two weeks, credited against the build) produces the measured business case and final build pricing; the phased build then runs per Section 09, with daily demo items in a shared Slack channel from week one.
Section 02 / The engagement

A knowledge hub that treats trust as the feature.

Your team asked for three things most AI assistants cannot prove: all the information, the context behind it, and its freshness. This document presents the architecture that delivers each one as an engineered, verifiable property, not a promise.

The knowledge hub gives every employee one conversational surface over the organization's knowledge. Answers assemble strictly from retrieved company content with per-claim citations; when confidence is low the system says "I don't know" and shows what it searched. Conversations are shared threads, corrections become team knowledge, and everything runs inside your own cloud account.

Six principles govern every decision in the sections that follow:

Single tenant, client-ownedEvery component, including embeddings and, where required, model inference, runs inside your VPC. Updates ship as versioned releases. There is no shared control plane.
Modular monolith firstOne deployable core with strict module boundaries. Only workloads with genuinely different scaling profiles, such as the sync workers, deploy separately.
Plan, then executeFor analytical questions, the LLM writes an explicit plan and deterministic code executes it; the model orchestrates but never fabricates data. Plans are stored and user-visible. Delivered as the Phase 2 runtime (Section 06).
Permissions in the data layerSource permissions sync with content and apply as a hard filter inside the retrieval query. Content a user cannot see never reaches model context.
Freshness is a data attributeEvery item carries its source-modified and last-synced timestamps; citations surface both; sync lag is measured per connector and displayed, never hidden.
Untrusted content stays dataRetrieved documents are delimited as data, never interpreted as instructions. Content-borne instructions are blocked from invoking tools or plans by layered controls (delimiting, scoped credentials, allow-listed APIs), verified with adversarial testing.
Section 03 / System context

Everything runs inside your cloud.

Employees and administrators reach the knowledge hub through the web application, authenticated against your identity provider. The platform syncs from your source systems, calls a model endpoint you choose, and streams its audit log to your SIEM.

Figure 1 / System context

Employees
web / desktop chat
Admins & auditors
console, audit views
Client IdP
OIDC / SAML, groups
HTTPS + SSO
Client VPC
bot.auto knowledge hub
conversation · retrieval · agent runtime · sync pipeline · admin
OAuth sync + events  |  inference  |  audit export
Confluence Cloud
pages, spaces, permissions
Slack
Socket Mode events
Google Drive
docs, folders, per-file permissions
Other third-party products & internal apps
same adapter contract
Phase 3
LLM endpoint
Claude via Bedrock / Vertex / API + ZDR
Client SIEM
audit stream

core answer pathplatform componentyour systems / externalphased scope

Section 04 / Component architecture

One core application, two planes.

The core application serves conversations and answers; the sync plane keeps the index complete and fresh. PostgreSQL with pgvector is the single system of record for documents, vectors, keyword search, permissions, threads, and audit.

Figure 2 / Components, client VPC

Next.js web app
chat · shared threads · citations with freshness · admin console
SSE / WebSocket streaming
Client VPC · Kubernetes
Core application · modular monolith
API / BFF gateway
OIDC authn · sessions · rate limits · streaming
Conversation
threads, sharing, wiki pinning
Agent orchestrator
route, retrieve, cite
Retrieval
hybrid keyword + vector, permission filter
Semantic catalog
entities, glossary, wiki, skills
Admin & audit
coverage, RBAC, logs
LLM gateway
provider config · per-workload keys and budgets · retries · tracing
Sync plane · independent workers
Confluence connector
backfill + webhooks + delta polling
Slack connector
Socket Mode WebSocket, real time
Drive connector
changes feed + push channels
queue · retries · dead-letter
Normalizer + ACL mapper
canonical model, tombstones
Distiller
thread to structured artifact
Chunker + embedder
chunks, vectors, upserts
Data layer · managed services
PostgreSQL + pgvector
docs · vectors · keyword index · permissions · threads · audit
Object store
raw payloads, replay
Queue
SQS / Redis Streams
Secrets manager
OAuth tokens, KMS

core answer pathplatform componentyour systems / externalphased scope

ComponentResponsibilityTechnology
Web appChat, thread sharing, citations with freshness badges, admin consoleNext.js + TypeScript
API / BFFOIDC authentication, sessions, rate limiting, streamingNestJS or Go, single gateway
Agent orchestratorRoutes each question, chooses the retrieval strategy, assembles the answer with per-claim citations, and gates on confidence ("I don't know" over guessing). Hosts the Phase 2 plan-then-execute runtime for analytical questions.Core module; every answer stored for reproducibility
RetrievalHybrid search with a mandatory permission filter; fusion and reranking per Section 06Core module over Postgres
Semantic catalogEntity and alias graph, glossary, team wiki, skills; auto-bootstrapped from source metadataCore module, Postgres tables
LLM gatewaySingle chokepoint for model and embedding calls; provider swap by configuration; virtual keys and budgets per workload; retries, fallbacks, spend trackingSelf-hosted gateway proxy, cluster-internal admin
ConnectorsOAuth, backfill, incremental sync, rate-limit backoff, deletion tombstonesOne worker per source, shared framework
DistillerLLM structuring of threads at sync time (Section 05)Worker, isolated model budget
PostgreSQL + pgvectorSystem of record: documents, chunks, vectors, keyword index, permissions, threads, catalog, auditRDS / Cloud SQL, Multi-AZ
Object storeRaw payloads for replay and re-indexing, attachmentsS3 / GCS, versioned, encrypted
Section 05 / Data access & freshness

Data access that proves its coverage.

Each source gets one adapter with two faces sharing auth and client code: a sync face feeding the index continuously, and a runtime face of live tools the assistant calls for point lookups and freshness verification.

This hybrid is deliberate: querying vendor search APIs at question time cannot prove coverage or measure freshness, and an index alone can lag reality. The index provides recall across millions of items; the live tools confirm currency before an answer ships. The verification policy is explicit: answers about current state (permissions, statuses, latest versions) re-check their top citations against the live source, and when the source cannot be reached the answer says so rather than asserting currency. All transport is HTTPS with cursor pagination, exponential backoff, idempotent upserts, and tombstones for deletions.

Figure 3 / Adapter anatomy, one per source

Source system
vendor REST APIs, OAuth 2.0 · tokens scoped and rotated
Adapter
Sync face · feeds the index
Backfill crawler
full corpus into item ledger
Change listener
WebSocket / webhook / push
Delta poller
watermark reconciliation
Permission syncer
access rules with every item
Runtime face · live tools
Fetch item / thread
live read, freshness verification
Source search
vendor-native point lookups
Access check
render-time re-check, caller's token

Slack sync runs on Socket Mode: the connector holds an outbound persistent WebSocket, so events arrive in real time with no public inbound endpoint; polling is demoted to low-frequency reconciliation sweeps that catch anything a disconnect missed. Events are acknowledged instantly, deduplicated, and the whole thread is re-fetched and stored as one unit so conversations are never internally stale.

SourceChange detectionReconciliationFreshness target
SlackSocket Mode: outbound WebSocket push (messages, edits, deletes, membership)Cursor sweep per channel watermark< 1 min
ConfluenceWebhooks (page created / updated / removed)Delta polling on last-modified< 15 min
Google DrivePush notification channels on the changes feedChanges-cursor sweep per drive< 15 min
Permissions, all sourcesSynced with content eventsPeriodic full reconcile< 15 min

Any system can join. The adapter contract is deliberately small: a connector reads its source and emits items in the platform's canonical schema (content, author, timestamps, permissions), and everything downstream, indexing, retrieval, citations, freshness tracking, works unchanged. That is how Jira, Salesforce, data warehouses, and your other third-party products and internal applications onboard in Phase 3 without rearchitecting.

Ingestion enrichment. Raw conversational text is a poor embedding target, so ingestion is two-tier: raw text becomes keyword-searchable the moment it lands, while the semantic layer builds asynchronously. A distillation pass structures each thread into a normalized artifact (searchable question, summary, resolution, systems touched); a bursting pass additionally embeds high-signal message runs so answers buried in tangents stay findable.

Section 06 / Retrieval & answering

Retrieval where no single scorer is trusted alone.

Four signals each cover the others' blind spots, their rankings fuse by consensus, and a reranker restores surrounding context before a word is generated.

SignalCatchesFails at
Full-textExact tokens: pasted error strings, flag names, hostnamesParaphrase
Vector similarityParaphrase: question and answer that share no vocabularyExact identifiers; short filler ranks too high
Term rarityRare-token substance over conversational filler 
Age decayNewer answer wins ties; stale advice loses 

Each signal ranks the permission-filtered candidate set independently; the lists fuse by reciprocal rank fusion so cross-signal consensus beats any single strong vote. A compact reranker scores the fused top set against the actual question, and winners are re-expanded with neighboring context so chunking never severs preconditions from answers. Embedding remains a per-corpus dial: where evaluations show vectors add no recall for a source, that source stops being embedded.

Plan, then execute (Phase 2). For analytical, multi-step questions the orchestrator separates planning from execution: the LLM writes an inspectable step-by-step plan, the platform executes it deterministically inside an isolated execution environment with per-run scoped credentials and no standing access, and results return as artifacts with citations. The plan itself is shown to the user and stored with the answer. Until Phase 2, such questions are declined gracefully rather than answered badly.

Section 07 / The three guarantees

Three guarantees, engineered rather than promised.

Each requirement you named maps to load-bearing machinery you can verify in operation, on a dashboard, not in a slide.

All the informationEverything the platform is granted, provably: backfill enumerates the full corpus of every connected space and channel into an item-level ledger, and the coverage dashboard reconciles it against source counts. Skipped items queue with reasons, never silently dropped; content the platform is not granted (uninvited private channels, personal messages) is excluded by design and visible as such. Raw payloads in object storage make re-indexing independent of source APIs.
Context of the informationThe canonical model preserves author, container, timestamps, URL, and permissions. Every claim maps to structured citations; the semantic catalog resolves project names and aliases across sources. Each answer stores its prompt, retrieved passages, model version, and plan: fully reproducible.
Freshness of the contextPush-based sync with per-connector targets; every citation shows source-modified and last-synced times; newer answers outrank stale ones; conflicting sources are flagged in the answer; deletions and permission changes propagate on the same measured targets, tracked on the admin dashboard with alerts on breach.
Section 08 / Security

Security your reviewers can walk through.

Six layers, each with named controls; the system is designed to pass a security review, not to survive one.

LayerControls
IdentityOIDC to your IdP; IdP-group to role mapping (Member / Admin / Auditor); SCIM optional; workload identity between services, no static keys
AuthorizationNormalized permission table per document; retrieval joins the caller's resolved principals; render-time re-check with the caller's own token
Data protectionTLS 1.2+ everywhere; KMS-encrypted storage; secrets in your secrets manager; source credentials never enter model context
Model boundaryAll model traffic egresses through one gateway: provider allow-list, zero-data-retention configuration, per-workload keys and budgets; fully in-VPC inference available via Bedrock or Vertex private endpoints; network policy denies model egress to every other component
Prompt injectionRetrieved content delimited as untrusted data; content-borne instructions blocked from invoking tools or plans by layered, adversarially tested controls; plan execution reaches only approved APIs with per-run scoped credentials
AuditAudit events stream to write-once storage and your SIEM, independent of the operational database; auditor role read-only; per-answer reproducibility record; gateway logs request metadata only
Reliability & continuity
  • Data store. Multi-AZ PostgreSQL with point-in-time-recovery backups and scheduled restore tests; read replicas offload retrieval as the corpus grows; vector index rebuilds run against a replica, never the primary.
  • Model gateway. Stateless and horizontally replicated behind the cluster service, with provider fallback chains; if the gateway is unavailable, chat degrades to a clear retry state rather than silent failure.
  • Disaster recovery. RTO and RPO targets are agreed in the discovery sprint; the architecture supports cross-region restore from versioned object-store payloads plus database point-in-time recovery.
  • Backfill budget. Ingestion distillation runs under a dedicated, rate-limit-aware model budget with prioritization; a keyword-only degraded mode keeps search available if enrichment lags.
Section 09 / Delivery plan

A phased path to production.

The discovery sprint settles the open questions in one to two weeks, foundation follows, a working knowledge hub over Confluence, Slack, and Google Drive ships next, intelligence layers on top, and expansion runs on your timetable.

PhaseDurationDelivers
Discovery sprint1-2 wkThe fixed-fee sprint of Section 10: stakeholder interviews, measured corpus sizing, cloud and inference posture, operations and retention decisions, cost-of-inaction and ROI model, working proof of concept, and the delivery doc with final build pricing
0 · Foundation3-4 wkInfrastructure as code, Kubernetes, SSO, skeleton app, model gateway, audit logging
1 · MVP10-12 wkConfluence, Slack, and Google Drive connectors with backfill and real-time sync, distillation pipeline, permission-aware hybrid retrieval, cited and freshness-badged chat, shared threads, project scoping, admin console with coverage and freshness dashboards
2 · Intelligence8-10 wkPlan-then-execute runtime in an isolated execution environment, semantic catalog editing, skills, wiki pinning, expert lookup, report artifacts
3 · Expansionon callJira, Salesforce, warehouse connectors with live SQL; your other third-party products, internal applications, and databases via the same adapter contract; scheduled automations; platform API
Section 10 / The ask

One discovery sprint, USD 5,000, everything you need to decide.

Fixed fee, one to two weeks, credited in full against the build if you proceed. Six deliverables, none of them slides:

Measured, not estimatedStakeholder interviews plus read-only scripts against your actual Confluence, Slack, and Google Drive: real corpus sizes, permission models, and API constraints.
Your numbers, not oursA current-state knowledge-flow map and a cost-of-inaction and ROI model built from your own figures, deliberately under-promised.
Proof, not slidesA working proof of concept: a Confluence space, a Slack channel, and a Drive folder indexed, answering with citations on your data.
The delivery docExecutive summary, current state, cost of inaction, this architecture, a week-by-week roadmap, quantified ROI, and final build pricing: everything needed to decide.
Daily visibilityFrom the sprint onward, daily demo items in a shared Slack channel; you watch progress, not status reports.
Then the buildThe sprint's delivery doc sets the final build price and the week-by-week plan; Phase 0 mobilizes as soon as you sign off.