sorry not a frontend dev, where can i get basic info about 'component architecture'
GraphQL works well with declarative UIs, because you can define fragments and combine them to create queries that best match the data the current set of components you are loading require. In this way, it's flexible in a way REST isn't (at least typically) and syncs well with Declarative UIs.
I can't speak to datalog though.