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!
@kickbird20084 жыл бұрын
Way better than Amplify document where I know each word but understand nothing collectively.
@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!
@tylermorales90432 жыл бұрын
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.
@gpathela4 жыл бұрын
Amazing tutorial for AppSync & GraphQL. Must watch for beginners.
@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!
@dialnco4 жыл бұрын
Awesome!! just updated a list query to a GSI with field and sort after the video. Worked right away ;) Thank!!
@hongwenli5412 жыл бұрын
Very Nice Video! I was looking for this for a few hours! Great!
@loganpowell4 жыл бұрын
Ah! I just missed it! Could you go over custom resolvers in a future video (e.g., batching / transactions / etc.)?
@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
@lardosian4 жыл бұрын
Thanks Nader, please keep these videos coming!
@tariqmahamid16332 жыл бұрын
Great tutorial!
@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 жыл бұрын
Excellent as always
@VincentFulco4 жыл бұрын
Awesome, can't wait!
@mohammedgt81024 жыл бұрын
Awesome work Nader!!
@samthetester80993 жыл бұрын
Thank you so much for these really helpful videos 🙏
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?
@ErayTonyali3 жыл бұрын
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?
@sylvain10993 жыл бұрын
Thanks mate, very useful
@humblepolitician3013 жыл бұрын
thank you. keep up the good work.
@visvajeet56093 жыл бұрын
👏
@AjitGoel4 жыл бұрын
Will this be recorded and show on youtube?
@tranminhhaifet3 жыл бұрын
Thanks
@haticeedis50323 жыл бұрын
Awesome, thank you so much ♥️
@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.
@RahulRaj-mo9ck4 жыл бұрын
Thank You!
@101appsCoZa4 жыл бұрын
great tutorial. thanks!
@MarkStatkus3 жыл бұрын
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?
@MarkStatkus3 жыл бұрын
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
@iquabius3 жыл бұрын
I wonder how these data access patterns intersect with the models from Amplify DataStore...
@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?
@NyraDob3 жыл бұрын
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.
@MarkStatkus3 жыл бұрын
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!
@vmailtk53 жыл бұрын
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
@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.