Skip to content
Governed Objects

Governed Objects

Put the business object, not an application, at the center.

Define business objects and their governed behavior independently of the applications that use them. Typed, versioned definitions establish object meaning; applicable policies and domain rules determine permitted changes; the runtime enforces supported behavior and preserves accepted history.

Build new interfaces on a shared business model, not a new interpretation of the business for every application.

Application-centered

Applications define the record

A hierarchy: one proprietary application at the top holds the object, locked inside its own rules and data. Three other callers below (an app, an AI and a human) must call it, each through a proprietary API, MCP server or UI, and have their own tangled connections to each other. proprietary API, MCP, UI Proprietary application its rules its data object App AI Human every other app calls the proprietary app
Business semantics are application-defined. The application’s implementation defines the record, its operations and the rules for changing it. Consumers depend on that contract. Replacing the application may require recovering those semantics, reproducing behavior and adapting integrations, not merely transferring data.

Object-centered

Applications work around the record

The object in the middle, with applications, AIs and humans alternating around it as equals, each connected directly to the object. The ring they share is labelled open specification. Open specification object AI Human App AI Human App every app works with the object directly
Applications use a shared governed model. Object meaning and governed operations are defined independently of individual applications. A runtime applies the supported validation and authority rules, while applications provide interfaces and integrations. New clients can build on the existing object contract rather than independently redefining it.

Dependencies remain. The distinction is what they attach to: an individual application’s implementation or an explicitly defined governed-object contract.

What this changes

common spec

A shared endpoint is not the same as a shared semantic contract.

Connecting applications to the same server is useful. But it does not, by itself, establish a reusable contract for what counts as an accepted change, how authority is checked, or what history must survive. Governed Objects makes those meanings explicit, so they are not defined only by one application’s implementation.

Common semantics, not identical software. Applications can have different interfaces; runtimes can use different storage and policy engines. Compatibility still requires support for the relevant types, versions and capabilities.

  • Specification: common requirements for governed behavior and outcomes.
  • Business types and applicable policies: object meaning, domain rules and authority requirements.
  • Runtime: implementation and enforcement of supported behavior.
  • Applications: interfaces, workflows and integrations.

The specification does not define a universal network API or make arbitrary runtimes interchangeable.

Trace a governed change

  1. Inspect the type definition. Identify the example’s fields and modeled operations, including behavior supplied by Python rather than YAML.
  2. Read the current instance. Compare the confirmed return date with any pending extension request.
  3. Submit an extension request. Observe the distinction between recording a request and changing the confirmed date.
  4. Accept or decline through the staff interface. Follow the resulting state and accepted history.

Accepting an operation is not always accepting a business proposal. Recording a pending extension request can itself be an accepted state change without approving the later return date.

This example shows multiple callers working with one business object through one local Python runtime. The object’s state and governed operations are managed by the Governed Objects runtime rather than separately implemented by each interface. This demo hosts the interfaces and runtime in one process. You can inspect the YAML type definition in the server view. Some business rules are implemented in Python rather than YAML. Cross-runtime interoperability and migration are not demonstrated here.

Full tradeoff comparison

Application-centered

Pros

  • Straightforward delivery: One team can build and evolve the application and its business model together.
  • Clear operational ownership: Deployment, support and business behavior sit within one product boundary.
  • Effective for focused use cases: A strong fit when one application serves most of the object's lifecycle.

Cons

  • Consumers depend on the application's contract: Changes to its interfaces or business model can affect connected systems.
  • Shared meaning takes coordination: Other applications may need mappings and duplicated assumptions to interpret the same business record.
  • Replacement can reach beyond the application: Moving to another product may require preserving identifiers, translating history and rebuilding integrations.

Object-centered with Governed Objects

Pros

  • A shared business record: Applications work with the same accepted state, explicit type meaning and history.
  • Governance across interfaces: Governed operations apply authority and validation checks regardless of which application submits them.
  • Continuity beyond one application: Object identity and accepted history are defined independently of the applications that use them.

Cons

  • More explicit modeling: Business operations, authority boundaries and changes to type meaning need deliberate design.
  • A runtime to operate and integrate: Hosting, identity binding, monitoring and connections to external systems remain engineering responsibilities.
  • Compatibility requires work: Applications and runtimes must support the relevant types, versions and capabilities; a common spec does not make integration automatic.

A well-designed conventional service can provide many of these behaviors. Governed Objects aims to make their meaning a reusable contract, rather than a convention defined separately by each application.

See it for yourself

Local experimental demo: synthetic data and one Python runtime. This local demo shows multiple callers working with one governed object. Vendor migration and complete AI-interaction logging are not demonstrated.

Technical details

Objects it holds: RentalAgreement rental-agreement-001. A third client, the scripted agent tool (no live AI model), runs from a terminal (see README). Here the pages and the server share one local process; the separation is in the code. Django renders and routes; every decision, revision and history record comes from the Governed Objects runtime.

Try it for yourself

The runtime is licensed under Apache 2.0. Install it, define an object, and call it from your own code.

Python
pip install governed-objects

Questions, or want to talk it through?

We’d like to hear what you’re building and how Governed Objects might fit.

Contact us

hello@governedobjects.com