Voyage II: Federating the Monolith: Value Types & Local Composition

Hello again Apollo!

I was working through these final lessons for federating the monolith and was dealing with some errors:

 UNKNOWN: Field "Host.id" can only be defined once.
    UNKNOWN: Field "Host.name" can only be defined once.
    UNKNOWN: Field "Host.profilePicture" can only be defined once.
    UNKNOWN: Field "Host.profileDescription" can only be defined once.
    UNKNOWN: There can be only one type named "Host".
    UNKNOWN: Field "Guest.id" can only be defined once.
    UNKNOWN: Field "Guest.name" can only be defined once.
    UNKNOWN: Field "Guest.profilePicture" can only be defined once.
    UNKNOWN: There can be only one type named "Guest".
    UNKNOWN: Field "Query.user" can only be defined once.
    UNKNOWN: Field "Query.me" can only be defined once.
    UNKNOWN: [monolith] Guest -> appears to be an entity but no @key directives are specified on the originating type.
    UNKNOWN: [monolith] Host -> appears to be an entity but no @key directives are specified on the originating type.

and

error[E029]: Encountered 2 build errors while trying to build a supergraph.

Caused by:
    Encountered 2 build errors while trying to build the supergraph.
    UNKNOWN: Field "Query.user" can only be defined once.
    UNKNOWN: Field "Query.me" can only be defined once.

After I back tracked through the lessons I figure out I missed a few key steps that were a bit “hidden” inside some collaspers.

It’s all good, as I was able to back track through my work, and it really shows the user how intricate this process is. One thing that could be useful is to have a lesson step, that would let the user do some final validation to review the subgraph-accounts schema side by side with the monolith schema to ensure they have made all the schema level changes to be able to run npm run compose sucessfully.

Just a suggestion to consider. :pray:

Hi John, thanks for the feedback!

That’s a great point, we definitely don’t to put things in the collapsible sections that folks might miss. Do you happen to remember which steps in particular were hidden? (And/or which lessons they were in?) Any specifics you have will help us pinpoint where to make improvements!

The suggestion about adding in steps for validation at the end of lessons is appreciated, and it’s definitely something we’re keeping in mind as we make revisions.

Thanks again for reaching out, and for taking time to go through the Voyage series! :raised_hands:

Hi @megan Thanks for the response, The lesson was value types and the steps where the collaspers were used are

  • Referencing entities
  • Entry points to the accounts subgraph
2 Likes