Root fields
EDG Root fields must define their respective event directive and a valid response type:Root type | Directive | Response type |
---|---|---|
Query | @edfs__natsRequest | A non-nullable entity object |
Mutation | @edfs__natsPublish | edfs__PublishResult! |
@edfs__kafkaPublish | edfs__PublishResult! | |
@edfs__redisPublish | edfs__PublishResult! | |
Subscription | @edfs__natsSubscribe | A non-nullable entity object |
@edfs__kafkaSubscribe | A non-nullable entity object | |
@edfs__redisSubscribe | A non-nullable entity object |
edfs__NatsStreamConfiguration
input object must always be defined to satisfy the @edfs__natsSubscribe
directive:
edfs__PublishResult!
from a EDG Mutation root field will result in a compositional error.
Root field arguments and event subjects
Arguments can be defined on a root field, which can then be passed to event subjects through an argument template. Argument templates are only support on the subject by NATS. In Kafka we use the subscription filter to split the topic into different streams. The argument template should follow the period delimiter of your subject. Theargs
refers to the field arguments, which has its own period delimiter, followed by a name of a field argument. This argument name must match exactly to a corresponding field argument name.
Entity definitions
EDG entities must be “minimal stubs”. This means that only the fields (and nested fields) that form part of its primary key should be included:- The primary key must contain the “resolvable” argument set to false.
- Fields (including nested fields) must form part of the primary key
- Fields (including nested fields) must be declared
@external