⏱ 21 min read
Every AI platform story starts with the same lie.
The lie is that the hard part is the model.
It isn’t. Not in any serious enterprise. Models are rented, swapped, fine-tuned, benchmarked, and replaced with surprising regularity. Vector databases come and go. Prompt frameworks mutate every quarter. GPU strategy gets rewritten every budget cycle. But the question that keeps architecture teams awake at 2 a.m. is much older and much more stubborn:
Who owns the data, and what exactly are they allowed to mean by it?
That is the real battlefield.
An AI platform is not merely a layer of machine learning capabilities sitting on top of enterprise systems. It is a force multiplier applied to ambiguity. If your operational boundaries are fuzzy, AI will industrialize the fuzziness. If your product catalog means one thing in commerce, another in supply chain, and a third in customer support, then your shiny AI assistant will confidently amplify all three interpretations at once. What looks like a retrieval problem is often a boundary problem. What looks like a prompt problem is often a governance problem. What looks like a platform problem is often a domain ownership problem. EA governance checklist
This is where feature boundary topology matters. I use the phrase deliberately. Topology is about shape, adjacency, and continuity under pressure. In enterprise systems, feature boundaries are not boxes on a slide. They are living fault lines between teams, semantics, policies, and operational responsibilities. AI makes those fault lines visible because it traverses them aggressively. A recommendation engine, support copilot, pricing optimizer, or fraud model does not politely stay in one bounded context. It reaches. It combines. It infers. It leaks assumptions from one domain into another.
And that is why the hardest part of AI platforms is data ownership.
Context
Most enterprises did not grow their data landscape through design. They accreted it. ERP here. CRM there. A warehouse built around reporting, not semantics. Integration teams that encoded business rules into ETL jobs because no product team would own them. APIs that expose records but not meaning. Kafka topics with names that sound business-friendly but carry payloads only three engineers understand. event-driven architecture patterns
Then AI arrives and leadership asks for a platform.
The first instinct is familiar: centralize. Build a common ingestion layer, a feature store, a vector index, a governance catalog, model gateways, notebook tooling, and perhaps a unified semantic layer if the budget still has oxygen. The platform team is told to “make all enterprise data AI-ready.” ArchiMate for governance
That sentence should make any architect nervous.
No platform can make data AI-ready if the enterprise has not decided who owns the meaning of customer status, contract eligibility, shipment delay, risk exposure, product compatibility, employee skill level, or case resolution. Data quality matters, of course. Metadata matters. Lineage matters. But beneath all of that sits the harsher truth: semantics are local, and ownership is political before it is technical.
Domain-driven design has been telling us this for years. A bounded context is not a documentation exercise. It is a social contract about language, consistency, and authority. AI platforms routinely fail because they behave as if one giant “enterprise context” can be assembled by ingestion and embeddings. It cannot. At best, you get a searchable confusion machine.
The platform should not erase domain boundaries. It should make them explicit, interoperable, and governable.
That is a very different job.
Problem
The core problem looks simple from a distance: AI workloads need broad access to enterprise data, but enterprise data lives inside systems and teams that own different meanings, quality standards, lifecycle rules, and risk obligations.
Close up, it gets messier.
A customer service copilot wants order history, return policy exceptions, active promotions, shipping delays, customer sentiment, warranty terms, and fraud flags. Those facts come from different systems. They are updated on different clocks. Some are authoritative records; some are derived views; some are probabilistic scores. Some can be shown to an agent. Some can shape a recommendation but cannot be displayed because the reasoning is regulated or commercially sensitive.
Now ask a dangerous question: who owns the resulting answer?
If the copilot tells an agent to grant a refund based on stale logistics data and an overly broad policy interpretation, which team owns the defect? Support? Logistics? Policy? The AI platform? The data engineering team that materialized the feature? The MLOps team that served the model? In weakly bounded organizations, everyone contributes and no one owns.
That is how AI platforms become enterprise liability multipliers.
There are a few common anti-patterns here:
- The centralized data ownership fantasy: the platform team ingests everything and slowly becomes the de facto owner of everyone else’s semantics.
- The feature store as semantic landfill: useful derived attributes pile up without domain authority, lifecycle discipline, or clear contracts.
- Topic-driven architecture without business accountability: Kafka topics proliferate, but nobody can say which topic is authoritative for a decision.
- Retrieval over reconciliation: teams assume RAG can sidestep the need to resolve conflicting truths.
- Model-first integration: an AI use case gets piloted by scraping a few systems, succeeds in demo conditions, then collapses in production under policy, trust, and consistency disputes.
The pattern behind all of these is the same: the enterprise wants cross-domain intelligence without paying the cost of cross-domain ownership design.
Forces
Any architecture worth discussing is shaped by forces, not preferences. On this subject, the forces are relentless.
1. Domain semantics are fractured by design
“Customer” is not one thing. Billing has an account holder. Sales has a commercial account. Support has a caller identity and entitlement relationship. Risk has a regulated subject. Marketing has a contactable persona. The mistake is not that these differ. The mistake is pretending they shouldn’t.
AI platforms consume all of them and then tempt teams into collapsing them into one global entity. That usually creates false consistency and hidden coupling.
2. AI use cases are inherently cross-boundary
Traditional applications often stay close to one domain. AI use cases rarely do. Forecasting crosses sales, supply chain, and finance. Assistants cross policy, product, and customer history. Fraud crosses payments, identity, and behavior. AI reveals the places where your bounded contexts must collaborate.
3. Data freshness and data truth are not the same thing
A Kafka stream can be near real-time and still semantically wrong for a given purpose. Conversely, a nightly snapshot might be authoritative enough for planning. Architects often optimize pipelines before they define decision ownership. Speed without semantic fit is just expensive confusion.
4. Governance is contextual, not universal
The same attribute may be permissible for training, prohibited for agent display, allowed for aggregate reporting, and restricted for export to third-party models. One global access rule is fantasy. Ownership needs to include policy interpretation at the domain edge.
5. Enterprises need local autonomy and global interoperability
You cannot run a large enterprise with one giant data team adjudicating all meaning. But you also cannot let every domain invent incompatible contracts. The sweet spot is federated ownership with explicit translation and platform support.
6. Reconciliation is unavoidable
Once multiple bounded contexts produce representations of overlapping reality, conflicts will occur. Shipment status disagrees with warehouse events. Returns policy differs by channel. Product compatibility changes after an engineering bulletin. AI systems often surface these conflicts faster than humans can patch them. Reconciliation is not cleanup work. It is first-class architecture.
Solution
The architecture answer is federated data ownership organized by feature boundary topology.
That sounds abstract. It shouldn’t.
A feature boundary is the place where a business capability can make and keep promises. “Order fulfillment can promise shipment events.” “Pricing can promise effective price rules.” “Customer support can promise case state.” “Risk can promise fraud disposition.” Ownership belongs where a team can maintain semantic integrity, operational correctness, and policy accountability.
Topology matters because boundaries are not equal. Some are core systems of record. Some are derived decision services. Some are read models optimized for AI retrieval. Some are translations between bounded contexts. Some are reconciliation zones where conflicting truths are resolved for a specific purpose.
The architecture principle is this:
AI platforms should not own business data. They should host the mechanisms that let domain owners publish, govern, translate, and reconcile it for AI use.
That means:
- Domains own source semantics and lifecycle.
- Cross-domain products define purpose-specific composite views.
- The platform provides cataloging, lineage, policy enforcement, model serving, vectorization, observability, and interoperability.
- Reconciliation is explicit, versioned, and owned.
- Kafka or event streaming is used where facts change over time and consumers need state transitions, not where teams are trying to outsource ownership by publishing vaguely named events.
A good platform makes it easy for domains to expose AI-ready artifacts without surrendering semantic authority.
Those artifacts can include:
- authoritative APIs
- event streams
- policy-tagged data products
- feature definitions
- retrieval corpora
- embeddings
- decision logs
- reconciliation views
- model feedback signals
But each artifact must have a clearly named owner, intended use, freshness expectation, and semantic contract.
If that sounds stricter than many data lake strategies, it is. AI is less forgiving than BI. A dashboard can survive a fuzzy definition for months. An autonomous or semi-autonomous decision system cannot.
Architecture
The architecture I prefer has four layers, though “layers” is slightly too neat a word for enterprise reality.
1. Domain systems and bounded contexts
These are operational systems where facts originate and are governed. Order Management, Pricing, Customer Support, Product Catalog, Identity, Risk, Logistics. Each bounded context defines its own ubiquitous language and data contracts.
2. Domain data products and event contracts
Each domain publishes what others may consume. Not raw tables dumped into a lake. Not mystery Kafka topics. Published products with intent. For example:
OrderShipmentEventsEffectivePriceRulesCustomerEntitlementSnapshotFraudDispositionProductCompatibilityKnowledgeBase
These are not generic integration exhaust. They are business artifacts.
3. Cross-domain AI composition and reconciliation
This is where AI use cases get the views they actually need. A support copilot might need a “Refund Guidance Context” composed from support policy, order state, logistics exceptions, fraud disposition, and channel-specific rules. No single domain owns that whole picture, but some product team must own the composition and define the precedence rules.
This is where reconciliation lives:
- Which source wins for shipment state?
- What happens if entitlement and policy disagree?
- Can the model answer at all if confidence is below threshold?
- Which facts are displayable versus only usable for scoring?
4. Shared AI platform capabilities
This is the common substrate:
- model gateway
- vectorization services
- feature computation infrastructure
- lineage and catalog
- policy enforcement
- prompt and retrieval orchestration
- evaluation harnesses
- observability
- feedback pipelines
A platform team should own these capabilities, not the semantics of “refund eligibility.”
Here is the topology in simple form:
The important thing is not the boxes. It is the ownership model encoded by the boxes.
Domain semantics discussion
This is where many articles become bland, so let’s be direct.
Semantics are not data definitions in a wiki. They are the operational meaning of facts under decision pressure.
Take “delivery delayed.” Logistics may define it as a deviation from promised carrier milestone. Customer support may define it as a threshold after which compensation options unlock. Commerce may define it as a trigger for churn prevention offers. AI systems that consume all three without context will produce nonsense dressed as intelligence.
The platform must preserve these semantic distinctions. Sometimes by namespacing. Sometimes by context-specific schemas. Sometimes by explicit translation services. Sometimes by refusing to create a global canonical model.
Canonical models are seductive because they make slides cleaner. They often make systems worse.
A better pattern is published context models plus translation at the edge of use. Let pricing mean pricing. Let risk mean risk. Compose for a use case only where needed, and make that composition owned and testable.
Reconciliation as a first-class concern
Reconciliation is not just matching IDs. It is deciding how conflicting representations become actionable truth for a purpose.
There are several reconciliation modes:
- Source precedence: one source wins if conflict exists.
- Temporal precedence: most recent valid event wins.
- Policy-driven synthesis: combine multiple facts under business rules.
- Human escalation: if conflict remains material, the AI must abstain.
- Probabilistic fusion: acceptable for scoring, not for auditable decisions.
Architects should define which mode applies where. Do not let this emerge accidentally in transformation code.
That abstention path matters. Enterprise AI systems fail less from ignorance than from false confidence.
Migration Strategy
No serious enterprise gets from current sprawl to disciplined ownership in one move. You need a progressive strangler migration.
Start with one high-value AI use case, preferably one that crosses domains but has visible operational outcomes. Customer support copilot is a common candidate because it surfaces semantic defects quickly and the blast radius can be controlled.
Phase 1: Map boundaries, not databases
Do not begin with ingestion. Begin by identifying:
- which domains provide input
- which domain owns each semantic concept
- what decisions the AI is allowed to influence
- what reconciliation rules are needed
- what data can be used for training, retrieval, display, and action
This usually reveals painful truths. Good. Better in workshops than in production.
Phase 2: Publish minimal domain data products
Ask each participating domain for the smallest useful authoritative product. Resist “just dump us the table.” If a team cannot describe the semantic contract of what they publish, they are not ready to publish it for AI.
Phase 3: Build a composition layer outside the systems of record
Create a use-case-specific composition service or data product. This becomes the strangler facade. Existing point-to-point integrations can remain initially, but new AI consumers use the composition contract, not direct source access.
Phase 4: Add Kafka where event history matters
Kafka is valuable when you need ordered domain events, replay, state transition awareness, and decoupled consumption. It is not valuable if teams use it to spray ambiguous messages and call that architecture.
Use Kafka for things like:
- order state changes
- shipment milestone events
- price rule activation
- fraud disposition updates
- support case transitions
- feedback signals from AI interactions
Then build stream processors or materialized views that create purpose-built context products for AI.
Phase 5: Formalize reconciliation and policy
As the use case scales, undocumented assumptions will surface. Codify them:
- source precedence
- confidence thresholds
- data retention
- display restrictions
- model fallback behavior
- escalation workflows
Phase 6: Strangle direct source dependency
Over time, stop allowing AI applications to scrape operational systems directly. They should consume published contracts and reconciled products. This is where platform discipline pays off.
A migration picture helps:
The strangler pattern matters because ownership cannot be imposed by committee. It has to become the path of least resistance.
Enterprise Example
Consider a global insurer building an AI claims assistant.
Leadership imagines a simple problem: help adjusters summarize claims, recommend next actions, detect fraud cues, and answer policy questions.
In reality, the assistant needs data from:
- policy administration
- claims management
- document processing
- payments
- customer contact center
- fraud investigation
- legal and compliance
- repair network partners
Early on, the insurer creates a centralized AI lake. Documents, claim records, payment events, and policy extracts are dumped into one environment. A model is fine-tuned. Demo day goes well.
Then production begins.
The assistant recommends approving a rental car extension because the claim summary shows ongoing repair delays. But the repair delay came from a partner feed that was late by 36 hours. Meanwhile, fraud disposition had shifted to manual review, but that event had not propagated into the lake snapshot. The adjuster follows the recommendation. Payment goes out. Audit asks why a restricted claim received automated guidance contrary to current fraud policy.
Everyone points at everyone else.
The insurer resets.
Instead of centralizing semantics, they redesign around bounded contexts:
- Policy owns coverage interpretation artifacts.
- Claims owns claim lifecycle and adjuster state.
- Fraud owns investigation status and display restrictions.
- Repair network owns repair milestone events.
- Payments owns financial disbursement truth.
They publish explicit products. Kafka carries claim, repair, and fraud events. A Claims Guidance Context service reconciles them with policy rules and display constraints. The AI assistant no longer queries every source directly. It consumes the guidance context plus a retrieval corpus of policy text and approved playbooks.
A key design decision: fraud signals may influence recommendation ranking but some details cannot be shown in generated explanations. That rule belongs neither in the model nor in the prompt template alone. It is enforced in the composition layer through policy-tagged fields.
This is architecture doing its real job: not drawing cleaner arrows, but deciding where meaning and responsibility live.
The result is slower to build than the original demo. It is also fit for an actual regulated enterprise.
Operational Considerations
Once the architecture is in place, operations become the proving ground.
Observability must include semantics
Latency, throughput, and model token counts are not enough. You need to observe:
- stale context rate
- reconciliation conflict frequency
- abstention rate
- source disagreement by domain
- policy enforcement denials
- explanation-to-source traceability
- downstream override rates by humans
If agents override the copilot whenever logistics and support policy intersect, that is not “user resistance.” It is a semantic defect signal.
Data lineage has to reach decisions
It is not enough to know where a field came from. You need to know which domain products, reconciliation rules, and model version influenced a given recommendation. In audits, “the AI said so” is not an answer. In root-cause analysis, neither is “the feature pipeline was green.”
Feedback loops must return to domain owners
Many enterprises route AI feedback only to the platform team. Bad idea. If users repeatedly flag warranty advice as wrong, the catalog or policy domain may need to fix a product or rule. Platform teams are often excellent at telemetry and terrible at interpreting business defects.
Versioning matters everywhere
Schema versioning. Policy versioning. embedding versioning. Prompt versioning. Retrieval corpus versioning. Reconciliation rule versioning. If you cannot replay a decision path against historical inputs and logic, you are operating blind.
Human-in-the-loop should be designed, not bolted on
Human review is often treated as a fallback. In enterprise AI, it is frequently a core control point. The trick is to trigger it for the right reasons:
- unresolved semantic conflict
- confidence below threshold
- policy-sensitive action
- contradictory source state
- incomplete domain context
Not every low-confidence score deserves a human. Not every high-confidence score deserves trust.
Tradeoffs
There is no free lunch here.
Tradeoff: local autonomy vs enterprise consistency
Federated ownership preserves domain integrity but increases integration work. Teams must publish contracts and maintain them. The reward is semantic accountability. The cost is coordination.
Tradeoff: faster prototyping vs durable architecture
A centralized AI lake gets demos moving quickly. It also hides ownership defects until scale, regulation, or customer harm exposes them. A bounded approach is slower at first and much safer later.
Tradeoff: canonical simplicity vs contextual truth
A global enterprise model sounds elegant. In practice, it often becomes an oversimplified compromise. Contextual models plus translation are messier but more honest.
Tradeoff: event-driven decoupling vs event chaos
Kafka can decouple teams beautifully. It can also create an ungoverned stream cemetery. Event contracts need ownership and semantics. Otherwise you are just distributing ambiguity faster.
Tradeoff: automation vs abstention
Business sponsors push for maximal automation. Sensible architects design for principled abstention. That means some interactions stop short of a definitive answer. This can feel like failure. It is often a sign of maturity.
Failure Modes
The failures here are predictable, which means they are avoidable if you are willing to be blunt.
1. The platform team becomes the shadow business owner
They define transformations, fix semantic disputes in pipelines, and accidentally own business meaning. This does not scale and usually ends in mutual resentment.
2. AI retrieval bypasses domain contracts
Teams throw documents and records into a vector store and let the model sort it out. Retrieval returns plausible but unauthorized or contradictory context. The assistant sounds smart and behaves recklessly.
3. Reconciliation is hidden in prompts or notebooks
If business precedence logic lives inside prompt instructions or analyst notebooks, it is untestable and non-governable. That is architecture debt with a very short fuse.
4. Kafka topics mirror database tables
This is not event-driven design. It is database replication with a shinier brochure. Consumers then infer business semantics from low-level change events and make inconsistent decisions.
5. Ownership stops at ingestion
A domain agrees to provide data, but not to manage quality, lifecycle, policy tags, or semantic changes. Then every downstream AI consumer becomes a detective.
6. Composite AI products have no product owner
Cross-domain context products are the new critical asset. If no one owns them, they become a junk drawer of “temporarily useful” joins and enrichments.
When Not To Use
This approach is not mandatory for every AI effort.
Do not invest heavily in feature boundary topology when:
- the use case is narrow, low-risk, and confined to one bounded context
- the AI output is exploratory analytics, not operational decision support
- the domain is immature and semantics are still actively being discovered
- the organization lacks the ability to assign real ownership to domain teams
- speed of learning matters more than production-grade controls, provided the blast radius is contained
A hackathon assistant over one team’s internal wiki does not need enterprise reconciliation architecture. A regulated customer decisioning platform absolutely does.
The mistake is not starting small. The mistake is scaling a prototype built on semantic shortcuts and assuming governance can be retrofitted later.
It usually cannot.
Related Patterns
A few patterns sit naturally beside this one.
Bounded Context and Context Mapping
The DDD foundation. Essential for understanding where language changes and where translation must happen.
Data Mesh, if used carefully
The useful part of data mesh is domain-owned data products. The useless part is treating it as a slogan that excuses weak platform engineering. AI needs both domain ownership and strong shared capabilities.
Strangler Fig Migration
Ideal for replacing direct source dependencies with published context products over time.
CQRS and Materialized Views
Helpful when AI consumers need read-optimized, purpose-specific representations without contaminating transactional models.
Event Sourcing, selectively
Useful where state transitions and auditability matter deeply, but overkill for many domains. Don’t turn every business concept into an append-only religion.
Anti-Corruption Layer
Vital when legacy systems cannot publish clean domain products and you need to shield new AI capabilities from old semantic damage.
Summary
AI platforms are often presented as technology stacks: data ingestion, feature engineering, vector search, model gateways, observability, governance. Those things matter. But they are not the hard part.
The hard part is deciding who owns meaning.
Feature boundary topology is how you make that decision survivable at enterprise scale. You let domains own their semantics. You require published contracts. You compose cross-domain AI context explicitly. You treat reconciliation as a first-class responsibility. You use Kafka and microservices where state change and decoupling genuinely help, not as substitutes for ownership. You migrate progressively with a strangler approach. And you design abstention, auditability, and policy boundaries into the system from the start. microservices architecture diagrams
A strong AI platform does not centralize truth.
It federates accountability.
That line is the difference between an impressive demo and an enterprise capability that can survive contact with real customers, regulators, messy operations, and Monday morning.
Frequently Asked Questions
What is cloud architecture?
Cloud architecture describes how technology components — compute, storage, networking, security, and services — are structured and connected to deliver a system in a cloud environment. It covers decisions on scalability, resilience, cost, and operational model.
What is the difference between availability and resilience?
Availability is the percentage of time a system is operational. Resilience is the ability to recover from failures — absorbing disruption and returning to normal. A system can be highly available through redundancy but still lack resilience if it cannot handle unexpected failure modes gracefully.
How do you model cloud architecture in ArchiMate?
Cloud services (EC2, S3, Lambda, etc.) are Technology Services or Nodes in the Technology layer. Application Components are assigned to these nodes. Multi-region or multi-cloud dependencies appear as Serving and Flow relationships. Data residency constraints go in the Motivation layer.