> "So what’s the actual problem here?"
Umm....
> "Now, the PHP guys have no reason to go anywhere near AppSync, they don’t code in JS anyway and it would be a relative waste of time to learn just so they can read some AppSync entities."
Is it though? Reading your screed it looks a lot like no time was saved by having a strict separation between "PHP guys" and "JS guys"....
> "Up comes the need for a new feature and the backend devs start to work on it. A month or so into the work they meet with the frontend team to see how much work needs to be done to integrate the feature or if there are any breaking changes for them."
A month? Wha..? Did the "backend devs" start working on it without meeting the "frontend team"?
> "Now the frontend team have changed [...] there’s new devs, the lead has left"
Uh huh...
> "Now no single dev is completely familiar with the full stack, many of the frontend devs have never even seen the database."
Right.
> "Similar changes have happened with the backend team, a new lead has been promoted, the dev who mostly managed AppSync has left, there’s a few new starters, etc."
So, to sum-up: Siloed teams failing to communicate with one another, inexperienced developers in process of on-boarding, brain-drain due to leads leaving, person who managed the glue that you were relying on to join the two silos left? Ok, right, cool, great...sure, blame GraphQL.
No technology is going to solve the problem of two completely siloed teams just chucking code over the wall at each other, then meeting once a month(?!), to puzzle over why things are going so badly. Especially not when the two teams are churning faster than a toddler's stomach on a speed-boat.