Logo
NeoArc Studio

Getting Started with Projections

Learn what projections are, why they exist, and how to create your first projection from the model. Projections transform your canonical data model into purpose-specific representations for databases, search indices, APIs, and more.

A projection transforms your canonical data model into a purpose-specific representation. Rather than annotating your model with persistence details, search configuration, or API serialisation rules, you create separate projections - each one tailored to a downstream concern. This keeps the model clean and allows multiple views of the same data to coexist without conflict.

Why Use Projections

Separation of Concerns
Keep your canonical model free from implementation details like column types or index settings
Multiple Targets
Create different projections for PostgreSQL, Elasticsearch, REST APIs, and more from one model
Traceability
Every projected property traces back to its source in the model, maintaining full data lineage
Profile-Aware Types
Database profiles automatically resolve model types to native column types for your chosen platform
Transformation
Rename, reshape, and derive new properties using the expression builder
Chaining
Build multi-layer architectures by chaining projections together (medallion, data vault, etc.)

Projection Profile Types

Each projection has a profile type that determines how properties are resolved and what configuration options are available:

Creating Your First Projection

Key Concepts

Next Steps

Creating a Database Projection
Build a projection targeting a specific database platform.
Learn more →
Creating a Search Projection
Configure search indices with field-level attributes.
Learn more →
Schema Projections
Build API contracts and type libraries
Learn more →