Graphoenix is an implementation and extension of GraphQL, based on reactive programming, provides a high-performance and scalable architecture.
For more information, visit Graphoenix.
When automatic table creation is enabled, map relations require non-null relation keys and a composite unique index. Existing relation tables are validated before their columns or indexes are changed. Initialization stops without modifying the table when null keys, missing relation-key columns on a non-empty table, or duplicate key pairs are found. Clean the reported data and restart the application; Graphoenix does not repair or delete relation data automatically.
Schema initialization is restartable, but it is not coordinated across application instances. Deployments that share a database must run initialization from one instance at a time or serialize it through their migration/deployment process.
Index initialization uses full index metadata through selectIndexMetadataSQL() and
createIndexesFromMetadata(). The name-only index metadata APIs are deprecated and retained only
for compatibility.
Nested object and list-object variables are translated recursively. Recursive variable input schemas are rejected during SQL translation to prevent unbounded statement generation. Recursive list-object mutations require explicit non-null IDs so parent and relation rows can be correlated; only a flat root list with an auto-increment ID can omit them. A list-object field cannot be a map anchor because one scalar anchor cannot represent multiple child IDs.