Cohesive Systems logoCOHESIVE SYSTEMS

Search Cohesive Systems

Ready

Search Cohesive Systems

Find product pages, building blocks, technical articles, and graph definitions.

Service Models

A service model is a system-graph view that bundles semantic responsibilities into logical services and connects those services through provided and required interfaces. It mediates between the domain's entities, relations, queries, and processes and the concrete repositories, deployments, runtimes, and schedulers that realize them.

A logical service is not identical to a code module, repository, deployable, process, container, host, or runtime instance. Those are possible realization units, and their relationship to the logical service must be stated rather than assumed.

Service as a Graph Node

Within a service model, a service is a node with:

  • an encapsulated internal subgraph;
  • provided interfaces expressing capabilities;
  • required interfaces expressing dependencies;
  • declared semantic and operational guarantees; and
  • ownership or accountability when those concerns are modeled.

Edges denote interface-mediated interactions, not undifferentiated dependency. Their protocols, shapes, channels, and operational envelopes qualify what the topology means.

Semantic Correspondence

Service operations can correspond to different semantic structures:

Operation roleSemantic correspondence
Entity commandRequests one or more valid entity transitions
Entity readReturns entity state or an authorized view of it
Relational queryEvaluates a query across entities, relations, or projections
Process commandStarts, advances, pauses, cancels, or signals a semantic process
Process queryExposes process state, history, obligations, or expected outcomes
Composite operationBundles several capabilities or coordinates several services
Technical operationProvides a realization capability such as encoding, delivery, scheduling, or storage
External or opaque operationExposes observable behavior whose semantics belong to another domain or remain intentionally hidden

The correspondence is many-to-many. A service can host several entity types; one entity's authoritative transitions and query projections can appear in different services; and a process can span many service boundaries. A domain relation also does not automatically imply a direct service dependency.

Allocation and Realization

A service model makes several allocation relations explicit:

semantic responsibility -> logical service
logical service          -> code modules
code modules             -> repository and build graph
logical service          -> owning or operating team
logical service          -> deployable units
deployable units         -> runtime instances
runtime work             -> scheduler and resources

These relations need not be one-to-one. A monorepo can contain many independently deployed services, and one service can be built from modules stored in several repositories. Likewise, a deployment may contain multiple logical services, while one logical service may have many replicas or specialized runtime instances.

The mapping is acceptable only when the chosen substrate preserves the required semantic and operational properties. See System Language and Realization and Realization.

Composition and Encapsulation

Some services own a semantic capability; others primarily compose, route, translate, or aggregate the capabilities of dependencies. These roles are independent of whether an operation executes locally or invokes another service.

Use service for the general encapsulation principle and its capability/composition taxonomy. Use Multiplexing and Demultiplexing when a gateway or facade changes the visible topology by placing several logical flows behind one node.

Projection Views

The same underlying system may be projected as:

  • a semantic view of entities, relations, queries, and processes;
  • a logical service topology;
  • an interface and interaction view;
  • a code, repository, and build graph;
  • a team ownership graph;
  • a deployment topology; or
  • a runtime and scheduling graph.

These are related projections, not interchangeable descriptions. Conflating them is a common source of architectural ambiguity.

Relationships

  • Domain semantics supplies the semantic responsibilities allocated to services.
  • Interfaces and Interaction Protocols define allowed service interactions.
  • Microservices describes one family of finer-grained service realizations and organizational arrangements.
  • Infrastructure Graph records public realization mechanisms and evidence.
  • Operational concerns qualify nodes, edges, and allocation mappings with runtime requirements.

External References