I am starting with Cognito and a mobile application where, along with other core functionalities, user profile can be updated and the pool gets queried quite often. Therefore I am considering following options:
- Query the pool with Cognito API directly from the app
- Query the pool with Cognito API - probably Admin functions? - from the backend REST web service , basically wrap Cognito API to ensure the portability and no vendor lock in
OR
- Do not use Cognito for the user profile data at all, but only for user authentication. Create a table in a MySQL database with user subs as IDs and all the other additional attributes, like their websites, photos, text / description to the profile, etc. Populate it with help of Lambda triggers offered by Cognito.
While choosing between option 1 and 2 is rather architectural and strategical decision, option 3 popped due to my uncertainty of ways to use Cognito Pools.
I came to option 3 after finding out about Service Limits of AWS Cognito . And I know these are adjustable, but starting with allowed 5 per second I am wondering if this wont become a bottleneck at some point..
Anyone who already have built a productive app with Cognito:
- could you share your experience with Cognito Service Limits and performance for Pool API in general (not just sign in/ sign up) ?
- Is it better to use Cognito for authentication / authorization only or for complete user management?
Thank you!