reym
Projections

Introduction

Performant Views on Event Based Data

The projection service is responsible for providing a view (projection) of the data in your event stream that is optimized for reading. By defining a simple GraphQl-like schema, you can define how events generate the current state of your data. The Projection Service will analyze the events and create APIs for the projection you described using that GraphQl schema.

By using projections you get a read optimized view of your event based data.

Schema Definition

Define projections by a GraphQL schema file. Most usecases won't need migration logic to enhance or change the projection. A detailed explanation on how to define such a schema can be found in the schema documentation.

References

Reference data from other projections or CRUD data.

The GraphQL API will automatically fetch all referenced data.

Views

Views are projections that are based on other projections. They can be used for advanced reporting tasks that need to aggregate a lot of data.

GDPR

The Projection service uses the GDPR logic of the Streams service. Make your projections GDPR-compliant by using the @gdpr directive in your schema.

Tenancy

The service supports multi-tenancy, allowing you to isolate data between tenants. Therefore every request must specify the id of the tenant being used.