This article kicks off our new "Core Platform Capabilities" series
Operational platforms require structured data, but rigid database schemas slow down development. Omnismith uses a runtime EAV model to let schemas evolve alongside the business.
Operational platforms require structured data to track physical assets, inventory, or internal resources. Traditional relational databases mandate rigid schema definitions. Altering these schemas to accommodate new business requirements introduces migration files, application deployments, and potential database downtime.
Omnismith resolves this constraint by implementing a dynamic schema architecture based on the Entity-Attribute-Value (EAV) model. This structure permits runtime modifications to the domain model without altering the underlying database tables.
The Three Foundational Components
The platform divides domain modeling into three foundational components: Attributes, Templates, and Entities.
- Attributes function as field definitions. They enforce data types and structural constraints. An attribute can be configured as a dimension (representing structural properties like strings, booleans, or dates), a metric (recording time-series values), a list (providing enumerated options), or a reference (linking to other entities).
- Templates act as reusable schemas. A template groups specific attributes to define the shape of a business object. For example, a template representing server infrastructure might group a hostname string attribute, an environment list attribute, and a CPU utilization metric attribute.
- Entities are the instantiated records. Every entity belongs to a template and populates the predefined attributes with explicit values.
Querying and Performance Tradeoffs
This architecture introduces a specific tradeoff. Querying an EAV structure requires more complex SQL operations than querying a flat relational table. Omnismith manages this complexity internally, exposing a unified entity search interface that supports filtering, sorting, and pagination without exposing the underlying table structure to the user.
Runtime Schema Evolution
The resulting system allows users to define custom business domains, group properties into templates, and deploy them to active projects instantly. Data structures are modeled and populated entirely at runtime, allowing the data model to evolve alongside the business.
Top comments (0)