So as it turns out it's really easy to keep track of devices when using #AWSAmplify, if you're building a product and you need to sync data between devices you might not even need to write any extra client code.
I have an #AppSync API that I use to put and store user generated data that is authenticated using #Cognito. As part of the JWT payload there is a device ID that is unique to the signed in user on that device.
Since I store all the user results in #Dynamo I can use a query filter to only return results where the device ID does not match the current device ID.