This is an extremely helpful session that helps me understand the capabilities in Amplify and AppSync. Thank you very much! As a side note though, a few of the auto generated GSIs in this demo may imply hot partitions in DynamoDB, given the primary keys (for example baseType and category) by nature are not random. I would suggest to mention that potential drawback during the demo next time so developers can hopefully be more mindful about this. All in all, thank you Nader for the thorough demo!
@randomlife30504 жыл бұрын
Bro you should be having a lot more subscribers. The content you present is very detailed and helpful.
@contractorwolf4 жыл бұрын
Wow Nader, this really filled in some of the gaps in my understanding of using DynamoDB properly with Amplify. I am going to try this out immediately, thanks!
@kickbird20084 жыл бұрын
Way better than Amplify document where I know each word but understand nothing collectively.
@joshbedo82913 жыл бұрын
This was great you explain things so well. I was a little stuck on graphql transforms (@key and @connection confused me) but this totally made everything super clear.
@naderdabit3 жыл бұрын
Great to hear!
@gpathela4 жыл бұрын
Amazing tutorial for AppSync & GraphQL. Must watch for beginners.
@hongwenli5412 жыл бұрын
Very Nice Video! I was looking for this for a few hours! Great!
@tylermorales90433 жыл бұрын
Love this! Can you make an updated version to this as the Amplify version was bumped up recently and some of the new directives are confusing.
@dialnco4 жыл бұрын
Awesome!! just updated a list query to a GSI with field and sort after the video. Worked right away ;) Thank!!
@lardosian4 жыл бұрын
Thanks Nader, please keep these videos coming!
@tariqmahamid16332 жыл бұрын
Great tutorial!
@loganpowell4 жыл бұрын
Ah! I just missed it! Could you go over custom resolvers in a future video (e.g., batching / transactions / etc.)?
@VincentFulco4 жыл бұрын
Excellent as always
@samthetester80994 жыл бұрын
Thank you so much for these really helpful videos 🙏
@mohammedgt81024 жыл бұрын
Awesome work Nader!!
@hariharan164 жыл бұрын
What can I say this is the talk I needed to fill that gaps I had in my understanding. Thanks you. Quick question with so many GSIs isn’t dynamodb replicating the data and would end up increasing the cost? Is it ok to create so many GSI?
@bernhardsmuts22654 жыл бұрын
also wondering this...
@garygriffin79794 жыл бұрын
You can get some efficiency by overloading GSIs, using the same one for different node types. Ref: docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-gsi-overloading.html Ref: www.goingserverless.com/blog/single-table-dynamodb-for-appsync
@VincentFulco4 жыл бұрын
Awesome, can't wait!
@quangle57014 жыл бұрын
I am excited to learn how different query patterns of the DynamoDB single table design best practice can be supported with GraphQL and AWS Amplify.
@emersonsmithperu4 жыл бұрын
Design transform graghpl advance
@sylvain10993 жыл бұрын
Thanks mate, very useful
@haticeedis50324 жыл бұрын
Awesome, thank you so much ♥️
@bennettsmith67454 жыл бұрын
Great presentation. Part way through, you show a slide titled "Pointers". It mentions "When changing index structures via Amplify CLI, remove then add them back." I am having trouble understanding how I would do this in a multi-environment setup. Do you have any suggestions on how to push index or model changes from a dev environment all the way through to production? Do I really need to push each incremental change all the way to production before moving to the next step?
@ErayTonyali4 жыл бұрын
It would be great if you explain the baseType usage a little more. I feel like you could've done all that without having the baseType field. When is this actually comes into play?
I wonder how these data access patterns intersect with the models from Amplify DataStore...
@AjitGoel4 жыл бұрын
Will this be recorded and show on youtube?
@bernhardsmuts22654 жыл бұрын
At 31:37 ... If you do this will you lose the data currently in the database? Say I have a working DB and I realise a query isn't working nicely and I need to update the index structure, won't deleting it and adding the next index structure delete all the data currently in the DB?
@MarkStatkus4 жыл бұрын
Is there a good resource for dealing with a one to many relationship, but with the ability to specify sub query to reduce everything you’d get back. I guess in a way this would be like matching on ID and say UserID instead of just getting all (many) records back that only match on ID?
@MarkStatkus4 жыл бұрын
I think I got it figured out .. I have Assets, then Attempts so I opted to : attempts: [Attempt] @connection(keyName: "attemptByAssetIndex", fields: ["id", "owner"]) # and now I can filter by id and owner
@phantazzor3 жыл бұрын
what if you just want to sort them by priority ?
@RahulRaj-mo9ck4 жыл бұрын
Thank You!
@contractorwolf4 жыл бұрын
when you have an access pattern from the list at 13:34 that is a "search products by..." you are just using the beginsWith for the search right?
@naderdabit4 жыл бұрын
Yes, exactly
@contractorwolf4 жыл бұрын
are there any solutions for doing more of a fuzzy search (name contains x, etc) in dynamodb that doesnt involve a full table scan?
@garygriffin79794 жыл бұрын
@@contractorwolf Ideally at least a PK value is known so that a key condition can be applied with a Query operation and limit what is retrieved from the db. Next best is to also include a range function on the sort key, e.g. PK = :pk and begins_with(SK, :prefix), to further limit what is returned by the database. After this cost of retrieval is incurred, a filter condition, e.g. contains(), can be applied to limit what subset of the queried data is sent to the client. The filter does not help with cost since the data has already been returned. If a key condition is not applicable, then a Scan operation must be used with something like contains(), which would involve a full table scan.
@lardosian4 жыл бұрын
I'm still a bit unsure of the table concept with appsync, do we have one dynamodb table in the end or multiple tables or could anyone help me understand better, thanks!
@lardosian4 жыл бұрын
@@zed8490 Thanks Kevin, turns out with amplify you have multiple tables, each model in your schema is converted to a dynamodb table.
@vmailtk54 жыл бұрын
Using a PK of baseType of Product for everything creates a "Hot Zone" on the partitions as everything is on the same partition leading to ProvisionedThroughputExceededException error. Is this the best way to go? I tried setting the PK as the ID but that then breaks the sorting of data
@vmailtk53 жыл бұрын
@Pínned by Nader Dabit I'm not falling for this scam
@NyraDob4 жыл бұрын
Question about auth. What happens if you have multiple owners. Like for eg., you might have a blog site that allows multiple ppl/users to edit and those users are not the original owner but have been given access to edit. How can you add this level of auth using the auth directive? Can i create a users type that is an array of user names? One thought was to create a group for those uses but i don't think using groups would make sense as I believe there is a cap with how many groups you can create.
@MarkStatkus4 жыл бұрын
I will run into this too, I think I will head down a path of - {allow: owner, ownerField: "editors"} as a array of owners/editors .. I feel like for editors: AWSJSON in the schema though is the right move. Could be [ID] or [String] too .. guess we'll see!