Case study

Enterprise AI Service Boundaries

Sanitized professional work separating a growing AI application into authorized APIs, focused services, messages, data boundaries, and regression tested behavior.

Role
AI software developer within a multidisciplinary team
Status
Ongoing professional work with sanitized evidence
Year
2024 to present
  • ASP.NET Core
  • React
  • Distributed services
  • Authorization
Sanitized architecture showing React clients, authorized ASP.NET Core APIs, independent AI services, messaging, SQL data, and Redis caching

Evidence boundary

Claims and supporting records

  1. Within a larger engineering team, I contributed across React clients and ASP.NET Core API boundaries that coordinate independently maintainable AI services.

  2. My work included access and group rules, shared domain contracts, provider integration paths, and regression tests around changed behavior.

  3. The sanitized architecture includes service messaging, SQL persistence, Redis caching, and container delivery while omitting private product and customer details.

Problem

A growing enterprise AI application had to evolve without turning assistants, models, templates, actions, provider integrations, authorization rules, and data access into one inseparable service.

The engineering problem was to create boundaries that let teams change focused capabilities while preserving the behavior expected by existing clients and users.

Constraints

The work sits inside a proprietary product and a larger engineering organization. Public evidence cannot include the private product name, source code, customer data, internal repository locations, or operational details.

Changes also had to respect existing authorization behavior, shared domain concepts, data ownership, asynchronous messages, and client contracts. A service boundary would be harmful if it merely moved code while leaving ownership ambiguous.

Ownership

I contributed as one developer within a multidisciplinary team. My responsibilities included application features, service extraction, API behavior, access and group rules, integration paths, domain contracts, and regression testing.

I did not solely own the platform, its architecture, or its business decisions. The public diagram describes the parts of the engineering shape relevant to my work and deliberately omits proprietary detail.

Decisions

We kept authorization at an explicit API boundary so access decisions could be reviewed alongside the request they protect. Domain contracts gave related services a shared vocabulary without exposing persistence models as public interfaces.

Independent services grouped cohesive capabilities such as assistants, models, templates, actions, and provider integrations. Messaging supported workflows that should not require one synchronous request chain.

Regression tests were added around changed behavior during extraction. That made compatibility a testable condition rather than an assumption made after code moved.

Implementation

React clients call authenticated ASP.NET Core APIs. The API boundary evaluates access rules and coordinates focused services through shared domain contracts.

Services use direct calls or RabbitMQ and MassTransit messages according to the workflow. SQL storage owns durable entities and migrations. Redis supports selected read paths where cached data is appropriate. Services are packaged for container delivery.

My implementation work crossed client, API, service, authorization, integration, and test layers as features moved through those boundaries.

Result

The resulting architecture separates client requests, access decisions, domain services, messages, durable data, and caching into inspectable responsibilities. The sanitized diagram shows those boundaries without claiming ownership of the whole platform.

Private accepted changes and repository history support my contribution areas. The public diagram explains the architecture but does not independently prove authorship. Neither source supports performance, adoption, revenue, user count, or delivery frequency claims.

Limitations

Proprietary code, internal names, customer information, operational telemetry, and private repository evidence cannot be published. The diagram is therefore a truthful abstraction rather than a complete system map.

No claim is made that every platform capability has been extracted, that the architecture eliminated all coupling, or that my work alone produced the current system.

Reflection

Service extraction is not primarily a folder or process change. The difficult work is deciding which behavior belongs together, who owns the data, where authorization occurs, and how existing clients remain correct during the transition.

That experience strengthened my preference for small boundaries backed by explicit contracts and focused regression tests.