5 ms·
Starting with an expressive declarative schema and building everything around it is exactly the approach we take in EdgeDB [1]. One of the key ideas is that yo
by RedCrowbar 5y ago
Starting with an expressive declarative schema and building everything around it is exactly the approach we take in EdgeDB [1]. One of the key ideas is that you should be able to define almost anything not just statically, but as a result of some computation. Think views, functions, and computed columns, but without the traditional limitations and change-rigidity of their implementation in Postgres, because schema migrations are treated as a single logical change unit [2] rather than a bunch of independent DDL statements, so dependencies between schema objects and their changes are understood. The richness of the schema coupled with thorough introspection [3] then enables GraphQL schema derivation [4] and type-safe client generation without any loss in fidelity.
(disclaimer: I work on EdgeDB)
[1] https://www.edgedb.com/ https://www.edgedb.com/
[2] https://www.edgedb.com/docs/guides/migrations/index https://www.edgedb.com/docs/guides/migrations/index
[3] https://www.edgedb.com/docs/guides/introspection/index https://www.edgedb.com/docs/guides/introspection/index
[4] https://www.edgedb.com/docs/graphql/graphql https://www.edgedb.com/docs/graphql/graphql