Build · sovereign operational intelligence ·

How to Build a Sovereign Operational Intelligence Stack

Palantir's practical advantage is not a magic model. It is a governed ontology over integrated data, connected to the workflows, permissions and analytical services that turn records into decisions.

11component layersREPLACEABLE INTERFACES
3deployment pathsLOCAL · CONTROL · ELASTIC
1governed decision loopSOURCE TO AUDIT EVENT
01 · The premise

What is an operational intelligence stack?

Treat this as enterprise data management with a modern operational interface, not as an ML research programme.

Palantir packages familiar enterprise disciplines—data integration, governed semantic models, workflow applications and model deployment—into one coherent system. Its public architecture documents expose the same recognisable layers: Ontology, data integration, Workshop applications and model integration. The difficult value is the coherence between them, not a novel foundation-model layer.

The builder's opportunity is not to reproduce Foundry feature for feature. It is to recover perhaps 80% of the operational value—an explicit design target, not a measured universal result—by joining mature open components around one bounded use case. The hard part remains identifiers, data quality, permissions, ownership and an interface that fits the work.

This guide is for data engineers, operations teams and government or enterprise teams that need to prove the shape before making a platform-scale commitment. The weekend exercise is intentionally narrow: one redacted or synthetic source, one graph domain, one decision screen and one measurable outcome.

Takeaway: define one operational decision and its owner before installing anything.

02 · Core components

Buy coherence with interfaces, not with one vendor.

These are composable options, not a shopping list: the weekend build needs only one choice per required row.

LayerPalantir equivalentOSS option AOSS option BNotes
Graph / ontologyFoundry OntologyJanusGraph on Apache CassandraApache TinkerPopJanusGraph supplies the graph layer and can use Cassandra as its distributed storage backend; TinkerPop supplies the graph API and Gremlin language, not a complete database.
Ingestion & pipelineData ConnectionApache KafkaApache NiFiKafka for durable event streams; NiFi for visible routing and provenance. For one nightly CSV, a script is enough.
Distributed storageFoundry datasetsApache Iceberg on SeaweedFSGarage or Ceph RGWSeaweedFS is the new-project default here because it is active, Apache-2.0 and explicitly targets S3 and Iceberg workloads. Pin the catalog, engine and object-store versions and test their exact S3 operations together.
Query & analyticsCode WorkbookApache SparkTrinoUse Spark for distributed transforms and Trino for interactive SQL across sources. DuckDB can replace both in the PoC.
Search / mixed indexOntology search and explorationApache SolrJanusGraph mixed indexUse Solr for text, faceting and geospatial search, or as a JanusGraph mixed-index backend. Keep Cassandra as the graph store; an index is rebuildable, not the system of record.
Geospatial processingGeospatial transformsEclipse GeoTrellisApache SparkGeoTrellis adds Scala/Spark raster processing and tiled geospatial data handling. Add it for terrain, imagery or coverage analysis—not for ordinary latitude/longitude markers.
3D globe / map UIGotham map workspaceCesiumJSMapLibreCesiumJS is the open-source 3D globe; Cesium ion is a separate hosted commercial service. Use MapLibre for a conventional 2D/2.5D operational map.
Workflow / decisions UIWorkshopLocStatApache SupersetUse LocStat as a Palantir-clone reference for operational UI patterns; verify its current code availability and licence before treating it as a production dependency. Superset is an Apache-licensed dashboard and exploration layer, not a transactional app.
OrchestrationPipeline BuilderApache AirflowPrefectSchedule, retry and observe batch work. Do not let two orchestrators own the same retry.
Model serving (optional)Model integrationOllamavLLMOllama is the simple local route; vLLM is a throughput-oriented server for a rented GPU. Keep models thin, task-specific and optional.
Security / accessFoundry securityApache RangerOpen Policy AgentRanger centralises policies and audit for supported data services; OPA evaluates policy as code inside applications and infrastructure. Identity and secrets remain separate jobs.

Choose object storage deliberately

Do not start a new community deployment on MinIO by default. Its community repository was archived on 25 April 2026, is read-only and now describes the community edition as source-only; the embedded web interface is an object browser rather than the former administration console. Existing installations can still run, but an unmaintained storage layer is a migration risk, not a neutral default.

Object storeBest fitWhy choose itMaterial constraint
SeaweedFSDefault for this guideA new self-hosted analytical stack, from a one-node proof to a distributed deployment.Active Apache-2.0 project with an S3 endpoint, explicit Iceberg support, downloadable releases and a single-binary development mode.Its master, volume, filer and S3 roles introduce a different operating model. Prove authentication, upgrades, failure recovery and the exact Iceberg client path before production.
GarageLightweight storage replicated across unreliable sites or modest hardware.Active AGPLv3 project designed for simple, resilient multi-site S3 storage, with binaries, containers, a CLI and an administration API.Garage deliberately uses replication rather than erasure coding and does not implement every S3 feature, including ACLs and bucket policies. Run compatibility tests; do not assume drop-in parity.
Ceph Object GatewayA larger datacentre that already operates Ceph or needs a broad object-storage control surface.Mature S3-compatible gateway with user management, multisite, encryption, policy and erasure-coded storage options.Ceph is a storage platform, not a weekend sidecar. Its cluster design, monitoring, upgrades and recovery need dedicated ownership.
Managed S3-compatible serviceTeams prioritising support and low storage-operations burden over full infrastructure ownership.The provider owns hardware repair, service upgrades and durability engineering.Region, keys, administrators, subprocessors, egress and exit tooling determine sovereignty. Contract and restore tests still matter.
MinIO CommunityMigration planning for an existing pinned deployment—not a new default.Existing S3 compatibility and operational knowledge may justify a bounded transition period.Archived upstream, source-only community distribution, reduced web UI and AGPLv3 obligations. Inventory the exact build, isolate it and set a dated migration plan.

Start with the graph, not “AI”

A relational schema is useful when rows and joins are stable. Operational questions usually cross changing relationships—shipment to vehicle, vehicle to depot, depot to incident, incident to responsible team—so a property graph can attach attributes to both entities and relationships without forcing every question into one rigid table shape; JanusGraph documents this model through Apache TinkerPop and Gremlin.

Keep the lake authoritative

Land raw and cleaned records in versioned Iceberg tables, then project only the operational entities and relationships needed into the graph. This makes the graph a serving model rather than the only copy of reality, and Iceberg's documented snapshots support reproducible reads and rollback.

Put workflow before models

A queue of delayed shipments with an owner and an acknowledge action is useful without an LLM. Add Ollama or vLLM only for a narrow task such as classifying free-text incident notes; keep rules, permissions and final actions outside the model.

Takeaway: for the weekend build, use SeaweedFS + Iceberg with an explicit catalog, JanusGraph, Trino and Superset; add Kafka, Spark or a model only when the sample workflow proves the need.

03 · Architecture

Three tiers, one traceable path.

Ingestion accepts source changes; storage and ontology create governed meaning; serving exposes only the decision surface.

The ingestion tier receives database changes, files and field events through Kafka, NiFi or a small batch loader. The storage/ontology tier writes immutable source records and curated Iceberg tables to object storage, then maps stable operational identifiers and links into JanusGraph. The serving/UI tier uses Trino or Spark for queries, Superset or a small LocStat-inspired application for decisions, and an optional model endpoint for bounded classification or extraction.

01 Ingestion tier

ERP / CSV / sensorsSource records and events
Kafka / NiFiValidate, route and retain

02 Storage / ontology tier

Iceberg on an S3 APISeaweedFS by default; versioned records
JanusGraph projectionOperational objects and links

03 Serving / UI tier

Trino / SparkQueries, transforms and features
Ollama / vLLMOptional bounded inference
Workflow app / SupersetViews, approvals and audited actions

Takeaway: preserve the raw record, make ontology projection repeatable and log every decision back as an event.

04 · Operational globe

Turn a cinematic demo into a governed operational picture.

A shared viewport is the beginning. Operational value starts when every mark carries origin, observation time, uncertainty and an accountable next action.

Bilawal Sidhu's spy-satellite simulator and follow-up idea IronSight are useful interface provocations for two different jobs. WorldView combines public spatial feeds in one navigable scene. IronSight synchronizes ordinary camera footage, reconstructs a shared 3D scene and keeps human-labelled tests and visible failure cases beside the polished replay. Neither project proves production sensor access, identification accuracy or operational readiness.

WorldView · public-feed fusion

One globe, several imperfect feeds

Borrow the movement from wide-area context to a source-backed object record. Keep feed age, coverage and simulation state visible.

IronSight · inspectable reconstruction

One event, several camera views

Borrow synchronization, source-frame comparison, review queues and failure displays—not the certainty implied by the HUD.

Use public feeds as fixtures and supplements—not as authority

Public feeds make the interface concrete, but they arrive with different coverage, licences, clocks and failure modes. This first matrix separates what made the prototype visually persuasive from what an accountable production system would need instead.

Compare public feeds and production fallbacks6 sources · caveats · owned routes
SourceWhat the prototype usedProduction caveatOwned or authoritative fallback
OpenSky NetworkSidhu reported 7,000+ changing aircraft positions. The API exposes live state vectors, tracks and flights.Coverage is receiver-dependent, quotas apply and operational or commercial use requires a written agreement. Treat identity and completeness as unverified.Replay a licensed snapshot for development; for operations, use the aviation authority's approved feed or your own authorized receivers and retain the raw messages.
ADS-B ExchangeCrowdsourced aircraft positions, including an API endpoint filtered to aircraft marked military.API access is commercial and entitlement-based. A transponder flag is not authoritative identity, intent or a complete air picture.Use it as a supplementary layer beside approved surveillance data; use synthetic tracks when real identifiers or movements are unnecessary.
CelesTrak GP dataThe demo selected 180+ satellites and propagated their orbits from published element sets.TLE or OMM records are orbital elements, not continuously observed live positions. Surface element epoch, propagation time and expected error.Pin a dated element-set fixture for tests; use the organisation's approved space catalogue or sensor-derived track when the decision is consequential.
OpenStreetMapRoad geometry under a particle effect that suggests vehicle flow.OpenStreetMap supplies mapped features—not live vehicle movement. Attribute the data, and do not build production traffic on the community tile servers.Self-host approved OSM extracts and tiles, then join the road graph to the transport authority's GIS, counters or licensed flow data.
City of Austin traffic camerasGeolocated public camera imagery projected into the 3D scene.Austin's dataset publishes locations and, where allowed, a latest screenshot on a five-minute cadence. It explicitly disclaims survey suitability and does not retain daily video.Use approved internal camera services, retention rules and surveyed asset locations; store fixture images for development and outage tests.
Google Photorealistic 3D TilesA high-resolution textured city mesh rendered in CesiumJS.It requires billing, an API key and on-screen attribution; Google restricts caching, offline use, extraction and machine analysis. EEA terms and returned content can differ.Keep the operational layers independent of the basemap. Fall back to government terrain, orthophotos and 3D city models served through the existing GIS.

The full, searchable operational-intelligence catalogue—including owned GIS and self-hosted map routes—is in Tools.

From feeds to governed records. Once each source has an authority level and an outage path, the next job is to keep observations, resolved identities, derived assessments and operator actions distinct. Otherwise a polished map quietly turns uncertain reports into apparent facts.

Inspect the operational data and decision layers5 layers · minimum records · guardrails
LayerMinimum recordOperator viewGuardrail
Base worldTerrain or imagery tile, provider, capture date, resolution and licence.A 2D map or 3D globe with scale, coordinates and imagery age visible.Do not let attractive basemaps imply that the scene is live.
Reported observationSource ID, observed-at and received-at times, geometry, classification, confidence and raw-record link.Selectable marks, trails and time controls; stale and low-confidence records look distinct.Preserve the report separately from the entity it may describe.
Resolved entityStable internal ID, source aliases, proposed matches, reviewer and merge history.One object dossier with every supporting and conflicting observation.Never merge identities only because two marks overlap on screen.
Derived assessmentRule, query or model version; inputs; generated time; output; uncertainty; expiry.An overlay that can be hidden and traced back to evidence.Label inference as inference; expiry prevents an old assessment becoming a permanent “fact”.
Workflow actionCase, assignee, permitted action, decision, rationale, timestamp and outcome.Triage queue and case panel beside the map—not just more glowing layers.Require human authorisation for consequential actions and preserve the audit event.

Build the time machine before the live map

Normalize each connector into an observation envelope and retain both event time and ingestion time. Record a feed heartbeat, expected update interval, last successful record and licence or redistribution constraint. Then replay a saved time window at different speeds. Deterministic replay makes late events, duplicate suppression, entity resolution and operator decisions testable without depending on a live third-party feed.

Separate reality, simulation and presentation

Keep three explicit namespaces: observed records received from a source, simulated tracks created for training or demonstration, and derived interpretations produced by rules or models. Show a permanent mode banner and source legend, and prevent simulated objects from crossing into production alerts. A sensor cone, orbital path or coverage footprint is a model output unless it came from a documented source; its assumptions belong in the object panel.

Use a thin geospatial serving path

Store raw payloads immutably, curate geometry and timestamps into Iceberg, relate identities and cases in the graph, and publish bounded vector tiles or GeoJSON through an authenticated API. CesiumJS or MapLibre should receive only the viewport, time range and fields the operator may see. Cluster and aggregate on the server; do not stream the whole lake into the browser.

Takeaway: public data is excellent for discovering the interface and shaping realistic fixtures. A production decision must survive the feed disappearing, changing terms or disagreeing with the authoritative system.

05 · Product case study

Study the seams that turned a weekend build into a product.

World Monitor is useful here because its working interface, source and unusually detailed documentation expose the engineering and commercial boundaries behind the spectacle.

World Monitor's account of its origin says it began as a weekend project in January 2026. It now publishes a free dashboard, paid Pro and API plans, and an Enterprise offer. That is evidence of a commercial product and pricing structure—not evidence of revenue, profit or customer retention. The distinction matters when using a successful-looking build as a business case.

As checked 23 July 2026, the shared dashboard URL restored a global seven-day view and its selected layers. The live interface exposed cached or live status, source age, coverage counts, methodology links, resizable panels and a command palette. Those small contracts make a dense map inspectable, reproducible and shareable; they are more valuable to copy than its visual drama.

Product seamWhat World Monitor documentsDIY translationAcceptance check
State is an interfaceMap view, time range and layers live in the URL; Route Explorer also serializes origin, destination, commodity and active tab.Put viewport, time window, filters, scenario and case ID in a versioned URL or saved-view record. A link should reconstruct the same evidence window without a narrated setup.Open the link in a clean session and obtain the same bounded working set, including the same distinction between observed and simulated data.
Contracts before connectorsIts newer domain APIs begin as Protocol Buffer contracts; generation produces typed clients, server interfaces and OpenAPI, while CI checks drift and breaking changes in the endpoint workflow.Define Observation, Entity, Assessment, Case and Action contracts before adding adapters. Keep vendor payloads at the edge and translate them into owned schemas.A breaking field change fails CI, and recorded source fixtures still replay through the generated client and server boundary.
Ingest off the request pathIndependent seed jobs fetch sources on different cadences, keep the previous cache on failure and hydrate common datasets in fast and slow startup tiers. Conditional loading and adaptive polling stop work for hidden panels and disabled layers.Schedule and deduplicate source collection separately from page requests. Land raw data first, publish a curated cache second and fetch only the layers required by the current decision.One slow or failed provider cannot blank the interface, multiply upstream calls or delay the first useful operator view.
Absence is a first-class statePer-feed circuit breakers, stale-on-error caches and source-specific freshness thresholds keep partial service available. If core inputs disappear, the risk panel says “insufficient data” instead of displaying an apparent all-clear.Every response carries observed-at, ingested-at, last-success, expected cadence, freshness, degraded status and reason. Never encode unavailable as zero or an empty healthy list.Pull a core feed: stale data remains visibly stale, the missing coverage is named and any dependent score is withheld or qualified.
Compute has an authority boundaryLocal geometry lookup, clustering, selected ML fallbacks and other presentation work can run in the browser; published scores, briefs, forecasts and operational APIs remain server-authoritative.Use browser workers for clustering, display transforms and offline convenience. Run governed identity resolution, scoring, permissions and actions in controlled services against versioned data.The UI remains responsive or partially useful offline without creating a second, conflicting source of operational truth.
Agents receive tools, not the lakeREST domain endpoints and MCP tools expose bounded operations. Cache-backed tools return freshness metadata, and JMESPath projections let a caller request only the fields it needs.Expose small, read-only task contracts with field projection, row limits, provenance and stable error shapes. Keep database credentials, unrestricted queries and write authority outside the agent.An agent answers a known operational question from cited records within a fixed payload and time budget, then hands any action to the normal approval path.
The paid layer is closer to a decisionThe free observatory supplies broad awareness. Paid plans add scenarios, route analysis, scheduled digests, MCP/API access and enterprise identity or deployment options.Charge for saved monitoring, lower-latency alerts, scenario work, workflow integration, collaboration, controlled deployment and assurance—not merely for repackaging public dots on a map.A paid feature shortens or improves a named decision loop; measure activation, retained use and operator outcome rather than map visits.

Borrow the product seams, not the public-dashboard topology

World Monitor's documented architecture—vanilla TypeScript, browser-side work, Redis-backed caches, scheduled seeders, edge functions and a separate live-data relay—is a coherent response to a public, read-heavy product. A private sovereign stack still needs an authoritative lake, an operational graph, organisation identity, row- or object-level policy, durable workflow state, audit and tested restore. Its consumer topology is evidence for specific patterns, not a reference architecture to copy whole.

01SeedCollect each source on its own cadence; retain the last good state.
02ContractNormalize into owned, typed observation and action schemas.
03CacheVersion keys, coalesce misses and serve stale data explicitly.
04Load by intentFetch the active view; pause hidden panels and unused feeds.
05DecideMove from map context into one scenario, route, case or approval.
06MeasureLog the action and outcome; meter value at the workflow seam.

Keep code, data and brand rights separate

The published licence guide says the platform is AGPL-3.0-only, while named thin client packages are MIT-licensed; it also separates commercial licensing and trademark permission. A modified public network deployment may therefore carry source-offer obligations, and upstream feed licences or API terms remain separate. For a sovereign build, either use the interfaces as learning material and implement your own bounded system, comply with the AGPL, or negotiate different terms before combining the code with a proprietary product.

Commercial check, 23 July 2026: the published plan table listed Pro at $39.99/month, API at $99.99/month, API Business at $249.99/month and custom Enterprise pricing. These are vendor-published prices, not audited revenue.

Takeaway: the reusable breakthrough is an honest path from unreliable signals to a shareable state, typed contract, visible freshness and paid decision workflow—not “vibe coding” or the number of map layers.

06 · Where AI fits

Put models at uncertain edges, not at the centre.

The platform should still ingest, relate, query and route work when the model endpoint is unavailable.

AI is useful where operational data becomes ambiguous: extracting entities from incident notes, suggesting that two records refer to the same asset, classifying a message, summarising a long case or translating an operator's question into a read-only query. These are proposed interpretations of evidence, not new facts.

AI jobInput and outputAuthorityNon-AI baselineAcceptance check
Extract and classifyUnstructured notes, reports or email become typed fields, labels and source spans.Write to a review queue or derived table; never overwrite the source record.Rules, regular expressions and controlled forms.Measure missed fields and false matches on a versioned, representative sample.
Entity-resolution suggestionCandidate records become a proposed match with evidence and confidence.A rule or reviewer approves graph merges; the model cannot silently join identities.Exact identifiers and deterministic fuzzy matching.Track false merges separately from missed matches; false merges are usually harder to undo.
Summarise and explainA bounded case bundle becomes a short brief with links back to records.Advisory only. The operator can inspect every cited record before acting.A fixed template populated from trusted fields.Test material omissions, unsupported statements and time saved—not writing style.
Natural-language queryAn operator question becomes constrained SQL, Gremlin or a saved query.Read-only service account, query allow-list, row limits and visible generated query.Curated filters, dashboards and saved queries.Run known questions against expected result sets and reject unsafe or unbounded queries.
Recommend a next stepCurrent state and approved policy become ranked options with reasons.Human approval before allocation, dispatch, targeting, enforcement or any other consequential action.Rules, thresholds and established optimisation solvers.Compare decision quality, constraint violations and operator overrides with the baseline.
Accelerate deliveryApproved designs and contracts become code, tests, migrations and interface variants.Normal code review, security scanning, tests and deployment gates still apply.Human implementation using the same specifications.Measure accepted change lead time and escaped defects, not generated lines of code.

Keep inference as a derived, traceable record

Store the source identifiers, prompt or task version, model and adapter version, timestamp, output, confidence where meaningful, reviewer decision and superseding result. This lets a later model produce a new interpretation without rewriting history. Apply the same access policy to prompts and outputs as to the source data they contain.

Use the cheapest adequate intelligence

Start with SQL, rules, graph traversals and established statistical or optimisation models. Add a small instruction-tuned model through Ollama when the data must remain local, or vLLM when an internally controlled GPU service needs higher throughput. The relevant deployment choices are compared in the site's local-model guide, DGX Station guide and self-hosted model guide.

Fail closed and degrade usefully

Timeouts, malformed output and model refusal should return the operator to the ordinary queue, saved query or rule-based result. Model access goes through one authenticated gateway with task-specific schemas, budgets and logs; the model does not receive database credentials or direct write access.

Takeaway: add one model-assisted task only after its non-model baseline, review boundary and evaluation set exist.

07 · Implementation paths

Choose where the operational burden lives.

All three paths can use the same logical interfaces; they differ mainly in control, staffing and scale.

PathCostOps burdenData sovereigntyScalability
A · PoCFully local: workstation, DGX Spark, DGX Station or small serverLowest incremental cost if hardware exists; no managed-service bill. Do not buy Station until a 128 GB machine is a measured constraint.Low only while single-node and disposable. Use containers, sample data and backups.Strong physical control; still restrict local accounts, volumes and exports.Enough for one source and a small team. Replace Kafka/Spark with files and DuckDB if sensible; add GPU capacity only for a named model, vision or simulation test.
B · ControlBare metal or on-premises KubernetesHardware, power, backup capacity and staff time become material.Highest: patching, certificates, storage, observability, recovery and capacity are yours.Best placement control when residency or disconnected operation is mandatory.Good with a capable platform team; Kubernetes does not remove stateful-system work.
C · ElasticCloud-hosted managed servicesFast start, then usage and egress charges; tag the PoC and set budgets.Lower for managed Kafka, object storage and Spark, but IAM and data governance remain yours.Depends on provider, region, keys, subprocessors and contract; verify rather than assume.Highest elasticity. AWS, Azure and Google Cloud each document managed streaming, object storage and Spark services.
Local AI hardware inside Path A

A strong lab node—not a shortcut around architecture.

DGX Spark and DGX Station can be PoC, development or test machines when local model, vision, simulation or in-memory compute is itself under test. The basic data and workflow PoC remains far smaller, and neither machine should become the ontology, object store, graph, workflow engine and recovery plan merely because it has unified memory.

PoC · capacity question

Only buy the larger node when the experiment needs it.

Use existing gear or Spark for one replayed feed, DuckDB, a graph and a bounded 20–35B model. Use Station to prove a 200B+ local model, large vision pipeline, heavy embedding build or sensitive frontier-model workflow—not to make the hardware purchase the experiment.

Development · shared lab

Keep the model service bounded.

Host the approved model endpoint, CUDA containers, notebooks, evaluation jobs and synthetic-data runs for a small team. Station can divide its GPU into up to seven MIG instances, subject to workload memory, while the governed data services remain independently deployable.

Test · promotion rehearsal

Make the node replaceable.

Exercise packaging, quantization, concurrent agents, failure recovery, access controls and promotion to cloud or datacentre infrastructure. Pull the model endpoint during a test and prove that the ordinary queue, saved query or rule-based result still works.

01 · replaySaved source windowDeterministic feeds and synthetic sensitive records.
02 · dataDuckDB / Iceberg / graphOwned identifiers, lineage and test fixtures.
03 · modelBounded AI endpointSpark, Station or a rented equivalent.
04 · workflowReview queueHuman approval and visible source evidence.
05 · evaluateKnown casesAccuracy, latency, overrides and cost.
06 · promoteProduction targetSame manifest; separate capacity and resilience decision.

Placement rule: the AI machine accelerates a bounded model or data-compute seam. Kafka, the object store, graph, identity and workflow remain separate services with their own recovery. A successful lab run proves the workload and interface—not high availability or a production architecture.

Service references: Amazon MSK, Azure Event Hubs for Kafka, Google Managed Service for Apache Kafka, Amazon S3, Google Dataproc and Azure HDInsight Spark.

Takeaway: prove the workflow on Path A, move to Path B when sovereignty or disconnected operation is a real requirement, and choose Path C only when its managed-service trade is acceptable.

08 · Private datacentre

Run it on VMware without pretending Kubernetes is mandatory.

For teams keeping operational data off third-party infrastructure, vSphere virtual machines are the shortest production path; Cloud Director adds tenant boundaries when an internal platform team serves several departments.

There are two credible VMware shapes. Use ordinary vSphere VMs when one team owns the stack and operational simplicity matters. Use Kubernetes through vSphere Supervisor, or tenant clusters exposed through Cloud Director Container Service Extension, only when the datacentre already operates that control plane.

VMware layerSmall production defaultScaled / tenant optionData boundaryDecision note
ComputeSeparate VM groups for ingress, data services and serving; reserve memory for JanusGraph, Trino and Kafka.Supervisor or Cloud Director tenant Kubernetes clusters with explicit resource quotas.Keep management, storage and workload networks separate; deny direct internet egress from data services.Do not introduce Kubernetes solely for this stack. VMs make state, failure domains and recovery easier to inspect.
Object storageA tested multi-VM SeaweedFS deployment on dedicated virtual disks backed by a named vSphere storage policy; never promote the one-node development mode.Ceph RGW when a storage team already operates Ceph; Garage when simple multi-site replication matters more than erasure coding or full S3 coverage.Encrypt in transit and at rest; keep keys, snapshots and replicas under the organisation's control.A VM snapshot is not an application-consistent object-store backup. Test bucket and Iceberg-catalog restoration separately.
Persistent volumesAttach and document VMDKs directly for VM deployments.vSphere CSI driver with storage classes mapped to approved policies.Restrict datastore, snapshot and volume permissions per tenant and service account.Validate expansion, topology, backup and restore on the exact vSphere/CSI versions in use.
Network entryInternal load balancer or reverse-proxy VMs; private DNS and organisation-issued certificates.The datacentre's supported Kubernetes ingress and load-balancer integration.Expose the workflow UI only to operator networks; keep Kafka, graph, object-store and model ports private.Make firewall denies part of acceptance testing, including blocked workload egress.
Identity & secretsFederate the UI with the existing identity provider; use separate machine identities and a private secrets service.Namespace/tenant roles plus OPA or Ranger policies; never treat a Cloud Director organisation as application authorisation.Administrators, backup operators and monitoring systems are data-access paths too.Document who can read consoles, disks, snapshots, logs and backups before importing sensitive data.

A practical vSphere layout

Begin with three security zones: ingestion VMs can reach approved sources; data VMs host Kafka or NiFi, SeaweedFS/Iceberg, JanusGraph and Trino; serving VMs host Superset, the workflow API and optional Ollama. Put Airflow or Prefect in the data zone, forward only bounded telemetry to the monitoring zone, and send audit logs to an append-restricted target.

Availability without theatre

Use vSphere anti-affinity rules to separate replicas across hosts, but test application failure rather than assuming VM restart equals service recovery. Back up configuration, graph data, the Iceberg catalog and object data on their own schedules; restore them into an isolated network and replay a known decision case before calling the design recoverable.

Cloud Director is a control plane, not a data policy

Cloud Director can provide isolated organisations, virtual datacentres, networks and quotas; its API documentation is the interface to automate those boundaries. If a managed-datacentre provider operates vSphere or Cloud Director, contract terms and privileged access still determine whether “private” meets the sovereignty requirement.

Takeaway: default to well-separated vSphere VMs, keep every data service on private networks, and prove a full restore before considering a tenant Kubernetes layer.

09 · Weekend build

Stop at one closed loop.

The deliverable is a working decision path, not an enterprise platform.

FridaySpecifyName the decision, source, owner, SLA and acceptance measure.
Saturday 09:00SeedLand a redacted fixture with observed, received and last-success times.
Saturday 12:00ContractType the observation, entity, assessment, case and action records.
Saturday 16:00RelateCreate only the graph edges and exception query the decision needs.
Sunday 09:00DecideBuild one shareable view with freshness, evidence and an acknowledge action.
Sunday 15:00Break itPull a feed, replay known cases and record misses, latency and corrections.

Takeaway: finish when one operator can open a reproducible view, recognise missing evidence, act on one trusted exception and leave an audit event.

10 · Interface references

Use clone projects as UI workshops, not platforms.

Foundry-style projects show how data, lineage and ontology might be navigated; Gotham-style projects show maps, alerts and a shared operational picture. Their immediate value is making interface choices tangible.

Most small “Palantir clone” repositories should be treated as rapidly assembled prototypes. That is not a dismissal: a working screen is often better than a slide deck for asking operators what they need to see, which actions belong beside an alert and what context is missing. It is not evidence that the repository should own production data, identity or workflow state.

ReferenceArchetypeWhat to borrowHow to use it
koala73/worldmonitorOpen-source OSINT productShareable state, typed service contracts, freshness semantics, bounded agent tools and the transition from observation to paid decision workflows.Start with the engineering case study above, then read the architecture and licence before opening the code. Reimplement validated seams in the owned stack or comply with its AGPL terms; do not treat public-feed breadth as an operational data foundation.
bilawalsidhu/gods-eye-viewSpatial-intelligence globeWide-area-to-object navigation, time-aware layers, object dossiers and the visual language separating a global overview from a selected case.As checked 23 July 2026, the repository contains preview assets and a README stating that code is being prepared for release. It has no application code, release or licence yet, so use it only as a design reference and recheck before adoption.
cherishwins/OpenFoundryFoundry-style data workspaceDataset, ontology, lineage, governance and application navigation; its repository also exposes service and API boundaries.Run it in a disposable environment or give selected screens and API contracts to a coding assistant as reference material. Ask for the same user journey against your maintained services in the language and framework your team already operates—not a line-by-line port.
Przyval/openfoundryFoundry SDK compatibility experimentHow an application-facing object API can be shaped around Foundry-like SDK expectations.Turn its interfaces into contract tests and mock client flows. Do not promise compatibility until your implementation passes the calls your application actually uses.
drissman/faber-foundryFoundry-style architecture experimentVocabulary and boundaries around ontology, lineage and governance.Compare its domain split with your own architecture. Reimplement only the bounded capability required by the pilot.
simplifaisoul/osirisGotham-style operational pictureMap composition, layers, event cards, filters, timelines and the visual hierarchy of a live operations room.Load synthetic events and put the interface in front of operators. Record which layers affect a decision; delete the decorative ones.
nabylb/aegis-intelligenceGotham-style feed aggregationMapLibre views and ways to combine event, aircraft, vessel and conflict feeds.Study feed status, stale-data handling and map interactions. Replace public feeds with synthetic records shaped like your governed sources.
lluisagusti/palantir-demo · global-watchDashboard demonstrationsCamera tiles, summaries, map layouts and fast ways to communicate an operational concept.Use screenshots and disposable prototypes in design workshops. Verify licences before copying code, assets or data connectors.

Give the coding assistant a job, not a repository

A useful request is: “Study this incident triage screen and implement the same operator journey in our existing application using these API contracts, design tokens, permission checks and acceptance tests.” A poor request is: “Rewrite this clone in our language.” The first preserves an outcome and constraints; the second reproduces unknown assumptions.

Takeaway: prototype with synthetic data, test screens with real operators, and carry only validated interaction patterns into the production codebase.

11 · Real-world uses

Optimise a decision, not a demo.

Each starter case has observable inputs, a human owner and a result that can be checked without an AI benchmark.

Five deployed patterns with measured outcomes. These are not promises for a new build: they show decisions worth instrumenting, the data that had to be joined and the denominator a pilot should reproduce.

NHS · named deployment

Fill surgical theatres

Join waiting lists, clinical priority, staff rosters, theatre sessions and booking actions so teams can fill usable capacity. NHS England reports one trust increased theatre utilisation by 13.1%, treated 8% more patients and reduced cancellations by 29% after embedding the FDP workflow.

Read the NHS operating evidence →
NHS · named deployment

Unblock hospital discharge

Relate beds, patients, discharge criteria, transport, pharmacy and social-care dependencies; give each blocker an owner. NHS England says North Tees and Hartlepool reduced stays of 21 days or more by 36% while admitting 7.7% more patients after introducing its data-led approach.

Read the NHS rollout account →
UPS · operator report

Sequence delivery routes

Combine stops, service commitments, road constraints and driver knowledge; optimise a route, then let the driver handle field exceptions. UPS reported ORION cut six to eight miles from each deployed route in 2014 and projected 100 million fewer miles and 10 million gallons of fuel saved at full deployment.

Inspect UPS’s reported denominator →
Airbus · named airlines

Schedule aircraft maintenance

Fuse sensor behavior, fault history, parts, maintenance windows and fleet plans; turn an early warning into a reviewed work order. Airbus reports Bangkok Airways’ on-time performance rose from 53% to 93% and LATAM reduced mechanical issues leading to delays from 24% to 15% while using Skywise workflows.

Review the named airline outcomes →
US DOT · multi-agency study

Dispatch paratransit trips

Continuously assign booked trips to vehicles as cancellations, delays and new requests arrive, while preserving accessibility and pickup constraints. A US DOT summary of 11 transit agencies reports 8–31% productivity gains across six agencies with before-and-after data and an average 17% improvement in on-time performance.

Read the deployed transit study →

Takeaway: choose the case with the cleanest identifiers and shortest feedback loop, not the most impressive map.

12 · From pilot to programme

Sell a sovereign capability, not a “DIY Palantir”.

For executives, describe the owned decision capability, data boundary and first operational outcome. Do not promise a clone of a mature product suite.

Call the project a sovereign operational intelligence platform or an owned decision-support capability. The credible proposal is that a six-person team, assisted by coding tools, can build a narrow production slice around one mission or workflow—not reproduce every Foundry or Gotham feature.

SeatPrimary accountabilityFirst deliverableWhy it cannot be outsourced to AI
1 · Operational product owner / analystOwn the decision, vocabulary, users, operating constraints and acceptance threshold.A decision map: trigger, evidence, permitted action, owner, deadline and escalation.The model can organise interviews; it cannot decide which trade-off the organisation is accountable for.
2 · Data / ontology engineerIdentifiers, source quality, entity resolution, lineage and the operational graph.One reproducible raw-to-curated-to-graph path with data-quality tests.Ambiguous records require domain decisions and named ownership, not plausible mappings.
3 · Integration / backend engineerSource adapters, APIs, workflow state and auditable actions.A bounded service contract connecting one source to one reviewed action.Generated code still needs transaction, retry, permission and failure semantics chosen for the real system.
4 · Product / frontend engineerOperator research, interaction design, accessibility and the decision UI.A tested exception queue or operational view using synthetic data.Fast UI generation increases the number of screens; only observation shows which one improves work.
5 · Platform / security engineerVMware or Kubernetes deployment, identity, secrets, network policy, observability and recovery.A private deployment with tested deny paths, backup and isolated restore.The organisation retains the risk when generated configuration exposes data or fails during recovery.
6 · Analytics / quality engineerDecision metrics, scenario fixtures, regression tests and production feedback.A versioned set of known cases with baseline, latency, miss and operator-correction measures.A model judging its own output is not independent evidence that the workflow works.

The bottleneck moved; it did not disappear

Our operating judgement is that the scarce role is the product owner who understands both the mission and the data. Outsourcing traditionally inserts translation between operators, analysts and developers; fast AI-assisted implementation can widen that gap by producing polished software before the decision rule is understood. Keep the operational owner embedded with the team and require weekly observation of real or replayed work.

Takeaway: fund six accountable roles around one decision, and measure the programme by operator outcomes and controlled data—not by screens shipped or code generated.

The useful 80%

Boring data foundations. One operational decision.