2 ms·
It's an external contract first ORM. It brings strict typing but doesn't go into object persistence management. It's similar to what OpenAPI/Swagger does for R
by speed_spread 1mo ago
It's an external contract first ORM. It brings strict typing but doesn't go into object persistence management.
It's similar to what OpenAPI/Swagger does for REST.
Being contract first means that both SQL and corresponding application data bindings get generated from the same universal spec.
Cons :
- It can make using platform-specific features harder than in plain SQL.
- It makes database app code and SQL statements dependent on the whims of evolving generators libraries. Which is not a problem 'per se' but imposes an oversight cost, especially if you customize said generators or develop your own.
But it brings many architectural advantages. Compared to typical ORM
- Runtime initialization time is very quick if not instant.
- Bindings can be precompiled in separate lib, only rebuilt when schema changes, making faster builds.
- Schema management, meaning versioning and migration strategy planning can be centralized. That to me is a big thing for long lived business projects with multiple deployments in varying environments.
- From the code it makes a database closer to a standard service API. There might be a parallel to make with using stored procedures as database interface.