Cohesive Systems logoCOHESIVE SYSTEMS

Vision

Start with the overview, then move into the lenses for AI, SaaS, operating roles, and architecture context.

Vision

The missing language layer for system design.

Software has mature languages for implementation, but system-level design still lives mostly in prose, diagrams, patterns, and conventions. Cohesive treats that gap as a language-design problem: define reusable system constructs, give them semantics, and realize them through compiler-driven projection.

The Gap

Teams can talk about system design in natural language. They can implement the design in programming languages. What is missing is the language layer between them: a reusable semantic representation for entities, transitions, invariants, relations, projections, policies, workflows, effects, boundaries, infrastructure requirements, and agent-facing context.

Today those constructs are usually implicit in local implementation. Because there is no portable system-level IR, every layer has to rediscover and reconnect the same meaning through boilerplate, adapters, duplicated contracts, generated glue, and convention.

Without that layer, design patterns remain informal. They are useful as names, but the reusable idea usually dissolves into classes, handlers, schemas, queues, controllers, jobs, configuration, dashboards, and team convention. The pattern is implemented, but it is no longer visible as a modular system construct.

Discussion

Natural language is expressive

Prose can frame intent, explain tradeoffs, and preserve rationale. It does not by itself give the system typed structure, composition rules, checks, generated artifacts, or executable commitments.

Implementation

Programming languages are concrete

Code can make the design run. But once system meaning is spread across framework hooks, data models, transport code, and runtime configuration, the original construct is hard to inspect or reuse.

System language

Higher-level, still compilable

Cohesive is a programming language family for system-level abstraction: expressive enough to define systems, and structured enough to compile into existing programming language constructs.

The Semantic System Graph

Cohesive's answer is the semantic system graph: an authored source artifact that names the system's meaningful structure before it is lowered into a stack.

The graph is where implicit structure becomes explicit system semantics. It declares what exists, what can happen, what must remain true, which views are derived, which effects cross boundaries, which processes continue over time, and which realizations preserve the intended meaning.

  • CoreShared shapes, observations, values, expressions, and vocabulary.
  • EntitiesIdentity, state, transitions, invariants, effects, and lifecycle semantics.
  • RelationsMappings, queries, joins, projections, and derived views.
  • ProcessesWorkflows, waits, decisions, child processes, signals, and outputs.
  • APIOperations, routes, policies, transports, and generated clients.
  • PresentationViews, forms, actions, flows, bindings, and frontend contracts.
  • IdentityPrincipals, scopes, grants, capabilities, and placement semantics.
  • StorageObservations, repositories, queries, streams, and backend capabilities.
  • InfraResources, bindings, topology, and deployment target semantics.

A Family Of Languages

Cohesive is organized as a family of block-specific DSLs over one semantic graph. Each block gets the primitives it needs, and each definition lowers into the host language and runtime artifacts that realize it.

Core defines shared shapes, values, observations, expressions, and annotations. Entities define identity, state, invariants, transitions, effects, and lifecycle semantics. Relations define mappings, queries, projections, joins, and derived views. Processes define workflows, waits, decisions, child processes, retries, signals, and outputs. API, Presentation, Identity, Storage, Configuration, Infra, Machines, and AI contribute their own graph constructs without becoming separate sources of truth.

Semantic modularity

Cohesive building blocks make system concepts reusable at the level where teams reason about the system, not only at the level where files happen to be organized.

System language and realization

The knowledge graph develops the principle behind the language family: semantic descriptions should be reconcilable with real runtimes, storage, networks, workflows, and infrastructure through explicit realization relations.

Realization Through Compilers

The technique is programming-language design applied to system construction. First define the right primitives. Give them domain semantics. Then give them operational semantics by compiling them into concrete artifacts: code, schemas, queries, generated clients, workflow definitions, state machines, policies, runtime bindings, infrastructure requirements, tests, diagnostics, and agent context.

This is why Cohesive is not primarily a methodology. A methodology can teach a team how to talk. A language and compiler can preserve the construct after the conversation ends.

The practical path is bottom-up as well as top-down. Existing code constructs, framework patterns, type systems, analyzers, source generators, and runtime libraries are not discarded. They are the material from which higher-level system primitives can be distilled, tested, hosted, and compiled back into the technologies teams already use.

Reading Path

Start with the broad lenses, then move into the article and knowledge-graph material that develops the details.

Cohesive System Model

The definition surface behind the language family: principles, domain semantics, operational concerns, system graph constructs, realization substrate, and architecture practices.

Persistence & Coordination Patterns

How familiar architecture patterns distill into system graph constructs with explicit commit, delivery, coordination, and recovery semantics.