Hey man Just wanna give you a shoutout, I am currently preparing for my SAA exam and found your videos super useful and I really love the way you explain the architectures with examples. Thank you so much !!!
I'm really not convinced of the value prop of step functions. He's saying, rather having complex code to handle the possible failure paths, it's very easy to use ASL language. Except, if you wrote that logic in code, it wouldn't be as nearly as complex as he implies. You could fit it all in a single code file using a language that other devs would already understand. If you used step functions, you're basically using an amazon specific proprietary "language" that is modeled using json (yuck). You lose the ability to run and test this logic locally (without tools to mock AWS functionality, which I would say are leaky abstractions). To even get to the point where you setup your dev environment to run this code you'll have needed to talk to the devops team to get you setup with a personal dev account in AWS. How can one say with a straight face that this is a simpler development workflow than just writing the service in normal non-proprietary code?
Agree with you. This was exactly what I was thinking while going through the video. I'll watch the entire series and then see if StepFunctions really make sense (maybe I didn't understand the pros/cons of it deep enough) Regarding the state saving and starting from the "failed/exception" state is considered, this can easily be done by saving the state in a DDB and reading the state & resuming from it in the next run.
You see, here is an example if you needed it that quality shines through in the end, it is so tough starting off a UA-cam channel and keeping going at look to gain those views and subscribers but a tweet today from from Jeff Barr, the king of AWS!! Bravo and keep up the great content!
I am working on a appointment app which require checking time slots and credit card payment. Does it make sense to use step function or should i do this in single lambda function ?
Hello, you mentioned that step functions help when exceptions are thrown but using your diagram, couldn't the same model work using the "conventional" method? You could set up a DLQ on the pin authorization service so that when it fails, a message gets thrown into the DLQ which the pin authorization service could try to process again without having to write to DynamoDB?
Thanks for these great tutorials.. I was able to design and run my first step function work flow to Train and deploy sagemaker model, learning through your content..
you kidding me? why all this shit?!?! god damn. It all make not sense!!!! I can describe this as "Let's make software development hard again!". incredible
This is very interesting! At first glance it seemed like overkill, I thought here "Why get vendor-locked for the sake of a workflow so simple to write in code?" But you make a good point in that functionality that seems simple on the surface often ends up being really complex to implement once you take into account not only the many ways each step can go wrong, but also things like atomic transactions and logging.
First of all I would like to say that your video is great. I have some questions though. I have analyzed the diagram you used at the end of the video, and word-by-word wrote this in a pseudocode: function easy(data) { do { storeHistory(data) } while (error || attemptNo
Some things you gain are: Easily integrate with aws services and have retry and back off logic built in to calls to other services that changes based on which service is called. Built in traceability, it’s easy to debug step functions because of the history and logging. And you can standardize/abstract state management a level above your services, so that anyone can understand your orchestration without caring about implementation. And that standard is well-documented, popular, and always growing in features. Like you said, you can write all of these things yourself, but you have to decide if the cost of using step functions is worth the time(money) you’ll save by using a standard set of features that has been created by someone else (like any library) I’m sure I missed other stuff
Oh no, here is another attempt to replace a general purpose programming language with a tool whose main purpose is to tie your hands and legs to a specific cloud provider
0:28 why aws Step Functions 1:13 step functions are *orchestration for an application* 1:45 native integration with aws services such as Lambda, SNS, sqs, Dynamo etc. 3:37 example
I just had one question as a person who just watched this video for fun.... is the "Pin" like your personal pin on the card or is that a special pin the card has through say Visa or Mastercard or one of those things. I am just curious because the way you described a failure.
Hey Andrew, I was referring to the Authorization pin we use at a credit card terminal. If a transaction comes in, we need to verify the PIN to make sure the user is the actual owner of the card. Hope this cleared things up.
Thanks Nathan! I don't have any courses yet available but I am considering starting one on Udemy. I am actually working on an AWS book right now. You can subscribe to my newsletter at the following URL to get informed when it is released. Thanks for watching! mailinglist.beabetterdev.com/
Hey man
Just wanna give you a shoutout, I am currently preparing for my SAA exam and found your videos super useful and I really love the way you explain the architectures with examples. Thank you so much !!!
This is really a great demonstration, I'm sold on step functions!🙌
I'm really not convinced of the value prop of step functions. He's saying, rather having complex code to handle the possible failure paths, it's very easy to use ASL language. Except, if you wrote that logic in code, it wouldn't be as nearly as complex as he implies. You could fit it all in a single code file using a language that other devs would already understand. If you used step functions, you're basically using an amazon specific proprietary "language" that is modeled using json (yuck). You lose the ability to run and test this logic locally (without tools to mock AWS functionality, which I would say are leaky abstractions). To even get to the point where you setup your dev environment to run this code you'll have needed to talk to the devops team to get you setup with a personal dev account in AWS. How can one say with a straight face that this is a simpler development workflow than just writing the service in normal non-proprietary code?
Agree with you. This was exactly what I was thinking while going through the video. I'll watch the entire series and then see if StepFunctions really make sense (maybe I didn't understand the pros/cons of it deep enough)
Regarding the state saving and starting from the "failed/exception" state is considered, this can easily be done by saving the state in a DDB and reading the state & resuming from it in the next run.
Brilliant, such a simplified explanation that even an idiot such as myself can understand. Thank you!
Thanks George! Glad you found this useful.
Please give clarity on what is TLDR, waiting for your reply
Are you still waiting? :D
Splendid 👌
"Step Function What are you doing? Step Function did you just access my Resources?"
Thanks for the Video! Which soft are you using for making presentations?
Very useful :) Liked and Subscribed :)
Thank you and welcome to the channel!
0:23 ok, where is the link?
ua-cam.com/video/s0XFX3WHg0w/v-deo.html
But you have to couple your business to a new layer of dependencies which depends on how you justify it.
You see, here is an example if you needed it that quality shines through in the end, it is so tough starting off a UA-cam channel and keeping going at look to gain those views and subscribers but a tweet today from from Jeff Barr, the king of AWS!! Bravo and keep up the great content!
Thank you!
I am working on a appointment app which require checking time slots and credit card payment. Does it make sense to use step function or should i do this in single lambda function ?
Hi Satya, at a quick glance Step Functions seem like a good option for your use case.
Hello, you mentioned that step functions help when exceptions are thrown but using your diagram, couldn't the same model work using the "conventional" method? You could set up a DLQ on the pin authorization service so that when it fails, a message gets thrown into the DLQ which the pin authorization service could try to process again without having to write to DynamoDB?
All i just want to say, the way you explain the concepts is pretty damn amazing. Highly appreciated. Keep up the good work.
100% true
Hey I really appreciate your channel so I am just sending good thoughts.
Thank you. I really appreciate the kind words of support.
Thanks for these great tutorials.. I was able to design and run my first step function work flow to Train and deploy sagemaker model, learning through your content..
Great work Rohit! Glad you are enjoying these videos :)
you kidding me? why all this shit?!?! god damn. It all make not sense!!!! I can describe this as "Let's make software development hard again!". incredible
This is very interesting! At first glance it seemed like overkill, I thought here "Why get vendor-locked for the sake of a workflow so simple to write in code?" But you make a good point in that functionality that seems simple on the surface often ends up being really complex to implement once you take into account not only the many ways each step can go wrong, but also things like atomic transactions and logging.
There is also code here, but not shown. How would lambdas work if you do not write some code? :)
what is the difference between this and Simple Workflow Service?
Thank you for the awesome explanation with awesome graphics. Solid!
Glad you liked it!
I am stuck at this queue, help me step-function!
First of all I would like to say that your video is great. I have some questions though. I have analyzed the diagram you used at the end of the video, and word-by-word wrote this in a pseudocode:
function easy(data) {
do {
storeHistory(data)
} while (error || attemptNo
Some things you gain are:
Easily integrate with aws services and have retry and back off logic built in to calls to other services that changes based on which service is called.
Built in traceability, it’s easy to debug step functions because of the history and logging.
And you can standardize/abstract state management a level above your services, so that anyone can understand your orchestration without caring about implementation. And that standard is well-documented, popular, and always growing in features.
Like you said, you can write all of these things yourself, but you have to decide if the cost of using step functions is worth the time(money) you’ll save by using a standard set of features that has been created by someone else (like any library)
I’m sure I missed other stuff
what is the issue in this code
from __future__ import print_function
import json
import urllib
import boto3
import datatime
print("Loading function")
def process_purchase(message,context):
print("Recieved message from step functions:")
print(message)
response={}
response['TranscationType'] = message['TranscationType']
response['Timestamp'] = datatime.datatime.now().strftime("%Y-%m-%d %H-%M-%S")
response['Message'] = 'Hello from lmabda land inside the ProcessPurchase Fuction'
return response
getting error in AWS step functions as The cause could not be determined because Lambda did not return an error type. Returned payload: {"errorMessage": "Unable to import module 'lambda_function'"}
{
"Comment": "A simple AWS Step Functions state machine that automates purchase and refund.",
"StartAt": "ProcessTransaction",
"States": {
"ProcessTransaction": {
"Type" : "Choice",
"Choices": [
{
"Variable": "$.TransactionType",
"StringEquals": "PURCHASE",
"Next": "ProcessPurchase"
},
{
"Variable": "$.TransactionType",
"StringEquals": "REFUND",
"Next": "ProcessRefund"
}
]
},
"ProcessRefund": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-2::function:ProcessRefund",
"End": true
},
"ProcessPurchase": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-2::function:ProcessPurchase",
"End": true
}
}
}
This is very interesting!
Great playlist! Thanks for your time, effort and for sharing your knowledges with us!
Is step function a lambda function ???
This is very useful even for AWS employees 😉 Thanks for the great work.
Thanks so much Liang-Chi!
How is this useful?
Thank you so much! You're great!
You're welcome! Glad it helped :)
Pretty damn brain dead simple, thanks!
Great content, but on step 3 would it not be another potential option "Step Up"? ie: OTP
Oh no, here is another attempt to replace a general purpose programming language with a tool whose main purpose is to tie your hands and legs to a specific cloud provider
Not really. That’s like saying the aws api or cli is trying to be a replacement too. It’s not. It’s just an api
Thank you! It is very detailed and clear (y)
You're very welcome!
Thanks for these great tutorials.... easily understandable.
You're very welcome Amperayani! Glad you enjoyed.
You sound like moistcritikal
I've heard this many times haha
0:28 why aws Step Functions
1:13 step functions are *orchestration for an application*
1:45 native integration with aws services such as Lambda, SNS, sqs, Dynamo etc.
3:37 example
How to catch lambda payload in step function task catch block?
WOW !! Now that's the best possible way of explaining the use case of this service, crystal clear !
Great work !!!!
Thanks so much Praneeth! Glad you enjoyed.
Daniel
Thanks a lot for the wonderful video. Got to learn a lot.
It would be super helpful to see step function being used in the context of multiple ETL jobs and also Sagemaker to generate predictions.
amzing solution arch right there
Studying for the SysOps exam, this really helped me understand step functions. Thanks!
Amazing Explanation
Thanks Akshata!
Thanks!
Thank you so much for your generosity!
I just had one question as a person who just watched this video for fun.... is the "Pin" like your personal pin on the card or is that a special pin the card has through say Visa or Mastercard or one of those things. I am just curious because the way you described a failure.
Hey Andrew, I was referring to the Authorization pin we use at a credit card terminal. If a transaction comes in, we need to verify the PIN to make sure the user is the actual owner of the card. Hope this cleared things up.
@@BeABetterDev ohhhh amazing! Thank you for answering my question. I loved the video and it was very interesting.
Great video thank you!
Very Helpful
Thanks Abishek!
Great vid! Do you have anything Udemy or something like that?
Thanks Nathan! I don't have any courses yet available but I am considering starting one on Udemy. I am actually working on an AWS book right now. You can subscribe to my newsletter at the following URL to get informed when it is released. Thanks for watching!
mailinglist.beabetterdev.com/
Excelente introduction to step functions
Thanks Jhony! Glad you enjoyed.
thank you
very useful video
Thanks a lot!
Crisp.
Very very good! Keep going!
Thank you for your kind words!
Thank you!
You're very welcome!
Thanks for the video.
You are very welcome Furqon!
Please Make a video series of Media Services specially MediaConvert and How to implement DRM Security . Whole process of VOD