Transcript from the "Other AWS Services" Lesson
>> Steve Kinney: So just a few final thoughts. A lot of these AWS services make making a lot easier. And I kind of just said is that with really professional grade tools. Just, that you had a lot of helpers from Amplify, Mobile Hub and AppSync and other services, you can use either one of them without the other one.
[00:00:23] It's very much take all you want, take everything, right? We looked at everything and how you use them together. But if there's one of these technologies that interests you more than the other, if you have a particular use case where you only need one of these APIs, you can just use that one, right?
[00:00:35] You can theoretically just use and stuff. I have actually learned a lot from spinning up stuff in Mobile Hub and then looking what Amazon did for me. Like because a lot of getting started guides, at this point I've read most of them, they're like 500 pages each. And they start out good and get esoteric as they go on but it's very interesting to see some of these configurations in practice.
[00:00:58] So AppSync makes it really easy to configure GraphQL which is, for me, as a front end engineer, a very life changing technology. The idea that I can basically make it if you are request again, just the data it need from a single end point. To build my UIs is incredibly powerful.
[00:01:17] I also wanted to leave you with some areas of further research. We use React, you can use all of this with Angular. We used React because I use React on a daily basis. They also have bindings for Angular if that's your thing. Pinpoint we talked a little bit about allows you to fire a whole bunch of tracking events if you've use something segment IO Or something like that, it has got a lot of that built in.
[00:01:42] It also allows you to send notifications out to users either via SNS, email or push notifications. MobileHub recently supports Lex for building conversational experiences. I have not gotten a chance to play with that yet but it looks super interesting. I'm not totally sure what you can do with it yet but, I will find out shortly.
[00:02:04] And then lastly the kind of point that I just made and I just want to reiterate it, one final time. Is that Mobile Hub applications are real applications they are using the same technology as many other very large applications. And a great way to kind of get started with a very good infrastructure that you can scale and you can focus on making the parts of your application that are important and differentiated rather than implementing for for the 700th time.
[00:02:31] It's very interesting to see some of these conventional configuration things come back.
>> Speaker 2: So the [INAUDIBLE] you know you showed us the graphs thing.
>> Steve Kinney: Yeah.
>> Speaker 2: The graphQL and before that we were doing the database the other way. Are those just two ways of putting a preference?
>> Steve Kinney: Just two ways. Yeah there's just two ways to do it, graphQL it's own complicated thing. Sometimes it might be power than you need too. For instance right now at Sun Grid we want to use graphic QL on our front ends, right? And the architecture team wants to give us graphQL endpoints.
[00:03:00] Right? The big problem is how do we, because, a given resolver, we looked at very simple examples. But if you think about okay, an event could have some numbers of comments. Right? And those comments could also have another relation. Right? And if you're not careful you could DDoS your entire system, because each resolver kinda works independently.
[00:03:21] And so as you're doing all these things you could have these, because it's a graph you can have these effects that you weren't really thinking about. Now with the Amazon stuff you're a little bit safer, because you can scale, but also you need to be a little bit careful with that stuff.
[00:03:37] For most new projects, I would likely go with graphQL.
>> Speaker 2: Yes so here we had one table, so you're kind of saying, yay when you start having your relational tables.
>> Steve Kinney: Yeah.
>> Speaker 2: You can start to just go down the rabbit hole.
>> Steve Kinney: The thing about very powerful tools is they can be very powerful foot guns as well.
>> Speaker 2: I use NT Framework it's a .Net thing for plugging in your SQL tables it's almost the same, I could start to pull in all my tables.
>> Steve Kinney: Yeah.
>> Speaker 2: And cause everything to go [SOUND].
>> Steve Kinney: Yep, yeah. That's exactly,
>> Speaker 2: I have done up to 20 includes, knowing [CROSSTALK]
>> Steve Kinney: Believe the saying goes with great power comes great responsibility. [LAUGH] graphQL is incredibly powerful.
>> Speaker 2: It goes for starting and like how far can I go?
>> Steve Kinney: Yeah, exactly. So we are very cautiously optimistic about for implementing it. Because for us we started our business as a API company which, so we build very good backend the APIs which means we don't build, particularly.
[00:04:32] We haven't always built particularly good APIs for our frontend, right? So you get one resource and it gives you a link to go fit the next one. All of a sudden, I'm making 18 HX requests to get the data I need to display the UI, right? If we can find some way where I can ask for that one thing, this could be really powerful and helpless on a performance level, right?
[00:04:50] But we could also take down the company, [LAUGH] right if we do it poorly, right? Especially like if some of these are publicly accessible, right? It's like, we could be diligent but so on and so forth.
>> Speaker 2: Yes, on that view models and get just that so imagine there's something similar where you say this is.
>> Steve Kinney: Yeah, even like the connections that way you can have a default. You're gonna get back 20 unless you say otherwise, right? And then you'll get a next token if you want more and stuff along those lines. So there are patterns and protections, but we saw connections because made them for us.
[00:05:27] They're not like a graphQL convention. They're not like, you automatically get that all the time. No. If you're building your own graphQL server. You're not having a schema magically generated for you. It could be very likely that you could be minding your own business and thinking about some edge case where all of a sudden things exponentially get more complicated.
[00:05:49] Cool. Thank you so much.
>> Speaker 2: [APPLAUSE]