Metamodeling in Phaset
Phaset uses a metamodel to organize software across multiple dimensions. Instead of forcing everything into a single hierarchy, the metamodel lets you describe software from different perspectives simultaneously—business context, technical architecture, and team ownership.
Think of it as adding tags to your software, but structured tags that answer specific questions.
The Core Organizational Layers
Section titled “The Core Organizational Layers”Every Record in Phaset can be associated with four core types of metamodel constructs:
| Concept | Question it answers | Purpose | Example |
|---|---|---|---|
| Domain | What business area? | Business context | E-commerce, Payments, Analytics |
| System | What capability? | Technical grouping | Checkout Flow, User Management |
| Group | Who owns this? | Team ownership | Platform Team, Data Engineering |
| Facet | What custom dimension? | Organization-specific metadata | Capability, Compliance, Data Classification |
These aren’t nested—they’re orthogonal. A single Record can belong to one of each:
- Domain: E-commerce (business area)
- System: Checkout Flow (technical capability)
- Group: Payments Team (owning team)
And a Record can belong to (almost) as many tags or Facets as you want!
Extending the Metamodel with Facets
Section titled “Extending the Metamodel with Facets”Beyond the core layers, Phaset supports Facets—freeform metamodel concepts that let you add organization-specific dimensions without changing Phaset’s structure.
Facets work through a simple tagging convention. Any tag formatted as facet_name:value automatically becomes a Facet. The left side defines the Facet type, the right side its value.
Examples:
capability:payment-processing→ Facet: “Capability” with value “payment-processing”business-area:retail→ Facet: “Business Area” with value “retail”data-classification:pii→ Facet: “Data Classification” with value “pii”compliance:gdpr→ Facet: “Compliance” with value “gdpr”
Besides being seen in the Record page, Facets appear automatically on the dedicated Facets page and can be used for filtering in the Catalog—just like Domains, Systems, Groups and many other dimensions.
Why Facets Matter
Section titled “Why Facets Matter”Every organization has concepts that matter to them but don’t fit standard metamodels. Maybe you organize around Business Capabilities. Maybe you track Data Sensitivity levels. Maybe you need Compliance Tags. Facets let you model these without forcing them into predefined categories.
This means you can:
- Reflect your reality: Model concepts specific to your domain—financial services needs different metadata than e-commerce
- Evolve organically: Add new Facets as needs emerge without restructuring existing data
- Answer your questions: Filter and organize by what matters to you, not generic categories
Facets vs Core Layers
Section titled “Facets vs Core Layers”Core layers (Domain, System, Group) are built into Phaset’s UI and workflows while Facets are emergent and appear as you use them. Use core concepts for universal notions (business area, ownership) and reach for Facets for all of your organization-specific dimensions.
Why Multiple Dimensions Matter
Section titled “Why Multiple Dimensions Matter”Different people care about different views of your software:
- Business stakeholders think in Domains: “How’s our E-commerce platform doing?”
- Architects think in Systems: “What’s the health of our Checkout Flow?”
- Engineers think in Groups: “What does the Payments Team own?”
- Executives think in all three: “Which team owns the Checkout capability in E-commerce, and how’s it performing?”
The metamodel lets everyone ask questions in their own language while looking at the same software.
How It Works in Practice
Section titled “How It Works in Practice”When you create a Record for a service, you can assign:
Record: Payment Gateway API├─ Domain: E-commerce (optional)├─ System: Checkout Flow (optional)├─ Group: Payments Team (optional)└─ Tags: capability:payment-processing, compliance:pci-dss (optional Facets)Now you can:
- Filter by Domain to see all E-commerce software
- Filter by System to analyze the Checkout Flow
- Filter by Group to see what Payments Team maintains
- Filter by Facets to find all Records with specific organization-defined attributes
- Combine filters to answer complex questions like “Show me all PCI-DSS compliant payment-processing services in E-commerce”
Not a Strict Hierarchy
Section titled “Not a Strict Hierarchy”Unlike traditional org charts or folder structures, Phaset’s metamodel doesn’t force strict parent-child relationships:
- One System can span multiple Domains
- One Group can maintain Records across many Systems
- Records can exist without being assigned to any Domain or System
This flexibility matches reality: software doesn’t neatly fit into boxes, and forcing it to creates artificial constraints.
Key Principle: Records Are Primary
Section titled “Key Principle: Records Are Primary”Records are the foundation. Domains, Systems, and Groups exist to organize and contextualize Records—not to replace them.
You always work with Records. The metamodel just helps you:
- Find the right Records faster
- Understand their context
- Analyze them in meaningful groups
Metamodel in Action
Section titled “Metamodel in Action”Imagine a completely realistic and plausible scenarion: You work at a large e-commerce company and your payment system starts acting up, being slow during checkout. What do you do if you have to find out more about the system and the people behind it?
Without a metamodel, you’d have to browse, quite possibly, hundreds of services hoping to find the right ones.
With a metamodel it’s much simpler:
- Filter by Domain: E-commerce → a dozen services
- Filter by System: Checkout Flow → half a dozen
- Filter by Group: Payments Team → one or a few
You went from hundreds of possibilities to the most relevant services in seconds.
Understanding Relationships with Coupling
Section titled “Understanding Relationships with Coupling”The Coupling view visualizes how your metamodel layers connect. It shows relationships between Domains, Systems, Groups—and when you use Facets, any discovered Facets too.
This high-level view helps you understand:
- Which Domains contain which Systems: See how business areas break down into technical capabilities
- Which Groups own which Systems: Understand team responsibilities across architecture
- How Facets relate to other layers: Discover patterns in organization-specific concepts
- Cross-cutting concerns: Identify Systems that span multiple Domains or Groups that maintain software across many Systems
The Coupling view turns metadata into insight. Instead of navigating Records one by one, you see architectural patterns and organizational structure at a glance.
When Coupling Matters
Section titled “When Coupling Matters”During planning: “If we migrate this Domain, which Systems and teams are affected?”
In incidents: “This System is down—what else depends on it?”
For architecture reviews: “Are our Systems well-aligned with business Domains, or do we have mismatches?”
When scaling teams: “Which Groups touch the most Systems? Where do we need clearer ownership?”
The Coupling view makes these questions answerable in seconds.
Getting Started
Section titled “Getting Started”- Start with Records (what you have)
- Add Groups (who owns it)
- Add Systems when you have enough Records that grouping makes sense
- Add Domains if business context matters to your stakeholders
- Use Facets for organization-specific concepts that don’t fit core layers
- Check the Coupling view to understand how everything connects
Don’t over-engineer it upfront. The metamodel grows with your organization.