[{"data":1,"prerenderedAt":190},["ShallowReactive",2],{"contributor-benjamin-smith":3,"portfolio-benjamin-smith":15},{"id":4,"bio":5,"extension":6,"github":7,"image":8,"linkedin":9,"meta":10,"name":11,"stem":12,"twitter":13,"__hash__":14},"contributors\u002Fcontributors\u002Fbenjamin-smith.json","Ben is a senior developer advocate for Serverless Applications at Amazon Web Services based in London, UK. Prior to joining AWS Ben worked in a number of different technical roles specializing in workflow Automation and web development.","json",null,"\u002Fassets\u002Fimages\u002Fcontributors\u002Fbenjamin-smith.jpg","bensmithportfolio",{},"Benjamin Smith","contributors\u002Fbenjamin-smith","benjamin_l_s","AnWUw_QnsE7nxN6jpUkxAbfBDO0HBsXutou-dGa8SQo",{"code":16,"resources":157,"total":189},[17,65,133],{"collection":18,"label":19,"items":20},"patterns","Patterns",[21,25,29,33,37,41,45,49,53,57,61],{"slug":22,"title":23,"url":24},"lambda","A single AWS Lambda function","\u002Fpatterns\u002Flambda",{"slug":26,"title":27,"url":28},"apigw-sfn","Amazon API Gateway to AWS Step Functions","\u002Fpatterns\u002Fapigw-sfn",{"slug":30,"title":31,"url":32},"eventbridge-schedule-stepfunctions-sam","Amazon EventBridge schedule to trigger a Step Functionsworkflow","\u002Fpatterns\u002Feventbridge-schedule-stepfunctions-sam",{"slug":34,"title":35,"url":36},"eventbridge-sfn-redrive","Amazon EventBridge to redrive AWS Step Functions failed state","\u002Fpatterns\u002Feventbridge-sfn-redrive",{"slug":38,"title":39,"url":40},"lambda-dynamodb","AWS Lambda to Amazon DynamoDB","\u002Fpatterns\u002Flambda-dynamodb",{"slug":42,"title":43,"url":44},"lambda-sns-sms","AWS Lambda to Amazon SNS","\u002Fpatterns\u002Flambda-sns-sms",{"slug":46,"title":47,"url":48},"lambda-lambda","AWS Lambda to AWS Lambda","\u002Fpatterns\u002Flambda-lambda",{"slug":50,"title":51,"url":52},"lambda-sfn","AWS Lambda to AWS Step Functions","\u002Fpatterns\u002Flambda-sfn",{"slug":54,"title":55,"url":56},"sfn-apigw","AWS Step Functions to Amazon API Gateway","\u002Fpatterns\u002Fsfn-apigw",{"slug":58,"title":59,"url":60},"sfn-lambda","AWS Step Functions to AWS Lambda","\u002Fpatterns\u002Fsfn-lambda",{"slug":62,"title":63,"url":64},"s3-lambda-resizing-node","Resizing images uploaded to Amazon S3 with AWS Lambda (Node.js)","\u002Fpatterns\u002Fs3-lambda-resizing-node",{"collection":66,"label":67,"items":68},"workflows","Workflows",[69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129],{"slug":70,"title":71,"url":72},"automated-policy-orchestrator","Automated policy orchestrator","\u002Fworkflows\u002Fautomated-policy-orchestrator",{"slug":74,"title":75,"url":76},"distributed-map-weather-anaysis","Distributed Map reduce weather analysis","\u002Fworkflows\u002Fdistributed-map-weather-anaysis",{"slug":78,"title":79,"url":80},"distributed-map-state","Distributed map state gif generator","\u002Fworkflows\u002Fdistributed-map-state",{"slug":82,"title":83,"url":84},"emit-and-wait","Emit and wait workflow","\u002Fworkflows\u002Femit-and-wait",{"slug":86,"title":87,"url":88},"gif-generator","gif generator","\u002Fworkflows\u002Fgif-generator",{"slug":90,"title":91,"url":92},"github-repo-views-counter","GitHub repo views counter","\u002Fworkflows\u002Fgithub-repo-views-counter",{"slug":94,"title":95,"url":96},"nested-workflows","Nested workflows","\u002Fworkflows\u002Fnested-workflows",{"slug":98,"title":99,"url":100},"pagination-loop","Pagination loop","\u002Fworkflows\u002Fpagination-loop",{"slug":102,"title":103,"url":104},"path-based-on-data","Path based on data","\u002Fworkflows\u002Fpath-based-on-data",{"slug":106,"title":107,"url":108},"request-response","Request response","\u002Fworkflows\u002Frequest-response",{"slug":110,"title":111,"url":112},"simple-retry","Simple retry","\u002Fworkflows\u002Fsimple-retry",{"slug":114,"title":115,"url":116},"stateless-roundrobin","Stateless roundrobin","\u002Fworkflows\u002Fstateless-roundrobin",{"slug":118,"title":119,"url":120},"synchronous-api","Synchronous API","\u002Fworkflows\u002Fsynchronous-api",{"slug":122,"title":123,"url":124},"synchronous-job","Synchronous Job","\u002Fworkflows\u002Fsynchronous-job",{"slug":126,"title":127,"url":128},"wait-for-callback","Wait for callback","\u002Fworkflows\u002Fwait-for-callback",{"slug":130,"title":131,"url":132},"web-contact-form-processor","Web contact form processor","\u002Fworkflows\u002Fweb-contact-form-processor",{"collection":134,"label":135,"items":136},"repos","Repos",[137,141,145,149,153],{"slug":138,"title":139,"url":140},"contact-form-processing-with-synchronous-express-workflows","Contact form processing with Synchronous Express Workflows","\u002Frepos\u002Fcontact-form-processing-with-synchronous-express-workflows",{"slug":142,"title":143,"url":144},"fresh-tracks","Fresh Tracks","\u002Frepos\u002Ffresh-tracks",{"slug":146,"title":147,"url":148},"function-stencil","Function stencil","\u002Frepos\u002Ffunction-stencil",{"slug":150,"title":151,"url":152},"php-examples-for-aws-lambda","Serverless LAMP stack","\u002Frepos\u002Fphp-examples-for-aws-lambda",{"slug":154,"title":155,"url":156},"serverless-coffee-workshop","Serverlesspresso Workshop","\u002Frepos\u002Fserverless-coffee-workshop",[158,174,181],{"collection":159,"label":160,"items":161},"explore","",[162,166,170],{"slug":163,"title":164,"url":165},"sam-pipelines","AWS SAM Pipelines","\u002Fexplore\u002Fsam-pipelines",{"slug":167,"title":168,"url":169},"opn302","OPN302: The Serverless LAMP Stack","\u002Fexplore\u002Fopn302",{"slug":171,"title":172,"url":173},"svs315","SVS315: Best Practices for Growing a Serverless Application","\u002Fexplore\u002Fsvs315",{"collection":159,"label":175,"items":176},"re:Invent 2023",[177],{"slug":178,"title":179,"url":180},"reinvent2023-api401","Resources for API401","\u002Fexplore\u002Freinvent2023-api401",{"collection":182,"label":183,"items":184},"reinvent2022","re:Invent 2022",[185],{"slug":186,"title":187,"url":188},"api309","API309: Advanced Serverless Workflow Patterns and Best Practices","\u002Freinvent2022\u002Fapi309",37,1792578882724]