SlideShare a Scribd company logo
Deliver customer value
FASTER with Step Functions
Yan Cui @theburningmonk
What is step functions?
How it works?
When to use it?
Orchestration vs Choreography
Real-world case studies
Design patterns
Agenda
@theburningmonk theburningmonk.com
Step Functions
@theburningmonk theburningmonk.com
orchestration service that allows you to
model workflows as state machines
@theburningmonk theburningmonk.com
design with JSON
https://states-language.net/spec.html
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
Step Functions OOP
class
instanceexecution
input arguments
@theburningmonk theburningmonk.com
start a state machine via..
StepFunctions
.startExecution(req)
.promise()
@theburningmonk theburningmonk.com
start a state machine via..
API Gateway
StepFunctions
.startExecution(req)
.promise()
@theburningmonk theburningmonk.com
start a state machine via..
EventBridge
including cron
StepFunctions
.startExecution(req)
.promise()
API Gateway
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
state transitions
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
$25 PER MILLION
@theburningmonk theburningmonk.com
$25 PER MILLION
15X LAMBDA PRICING!
@theburningmonk theburningmonk.com
https://aws.amazon.com/about-aws/whats-new/2019/12/introducing-aws-step-functions-express-workflows
@theburningmonk theburningmonk.com
Yan Cui
http://theburningmonk.com
@theburningmonk
AWS user for 10 years
http://bit.ly/yubl-serverless
Yan Cui
http://theburningmonk.com
@theburningmonk
Developer Advocate @
Yan Cui
http://theburningmonk.com
@theburningmonk
Independent Consultant
advisetraining development
theburningmonk.com/courses
homeschool.dev
designing state machines
types of states
@theburningmonk theburningmonk.com
"TaskState": {
 "Type": "Task",
 "Resource": "arn:aws:lambda:us-east-1:1234556788:function:hello-world",
 "Next": "NextState",
 "TimeoutSeconds": 300
}
Task
Performs a task.
@theburningmonk theburningmonk.com
"TaskState": {
 "Type": "Task",
 "Resource": "arn:aws:lambda:us-east-1:1234556788:function:hello-world",
 "Next": "NextState",
 "TimeoutSeconds": 300
}
Task
Performs a task.
@theburningmonk theburningmonk.com
"TaskState": {
 "Type": "Task",
 "Resource": "arn:aws:lambda:us-east-1:1234556788:function:hello-world",
 "Next": "NextState",
 "TimeoutSeconds": 300
}
Task
Performs a task.
@theburningmonk theburningmonk.com
"TaskState": {
 "Type": "Task",
 "Resource": "arn:aws:lambda:us-east-1:1234556788:function:hello-world",
 "Next": "NextState",
 "TimeoutSeconds": 300
}
Task
Performs a task.
@theburningmonk theburningmonk.com
"TaskState": {
 "Type": "Task",
 "Resource": "arn:aws:lambda:us-east-1:1234556788:function:hello-world",
 "Next": "NextState",
 "TimeoutSeconds": 300
}
Task
Defaults to 60s, even if function has longer timeout
Performs a task.
@theburningmonk theburningmonk.com
"TaskState": {
 "Type": "Task",
 "Resource": "arn:aws:lambda:us-east-1:1234556788:function:hello-world",
 "Next": "NextState",
 "TimeoutSeconds": 300
}
Task
Defaults to 60s, even if function has longer timeout
Set this to match your function’s timeout
Performs a task.
@theburningmonk theburningmonk.com
"TaskState": {
 "Type": "Task",
 "Resource": "arn:aws:lambda:us-east-1:1234556788:function:hello-world",
 "Next": "NextState",
 "TimeoutSeconds": 300
}
Task
Doesn’t have to be Lambda function.
Performs a task.
@theburningmonk theburningmonk.com
"TaskState": {
 "Type": "Task",
 "Resource": "arn:aws:lambda:us-east-1:1234556788:function:hello-world",
 "Next": "NextState",
 "TimeoutSeconds": 300
}
Task
Doesn’t have to be Lambda function.
Performs a task.
Activity, AWS Batch, ECS task, DynamoDB,
SNS, SQS, AWS Glue, SageMaker
@theburningmonk theburningmonk.com
{ “x”: 42, “y”: 13 }
$ =>
{
“x”: 42,
“y”: 13
}
"choose": {
"Type": "Choice",
"Choices": [
{
"And": [
{
"Variable": "$.x",
"NumericGreaterThanEquals": 42
},
{
"Variable": "$.y",
"NumericLessThan": 42
}
],
"Next": "subtract"
}
],
"Default": "add"
},
@theburningmonk theburningmonk.com
{ “x”: 42, “y”: 13 }
$ =>
{
“x”: 42,
“y”: 13
}
"subtract": {
"Type": "Task",
“Resource": "arn:aws:lambda:…",
"Next": "double",
"ResultPath": "$.n"
},
@theburningmonk theburningmonk.com
{ “x”: 42, “y”: 13 }
$ =>
{
“x”: 42,
“y”: 13
}
module.exports.handler = async (input, context) => {
return input.x - input.y
}
$.n
@theburningmonk theburningmonk.com
{ “x”: 42, “y”: 13 }
$ =>
{
“x”: 42,
“y”: 13,
“n”: 29
}
@theburningmonk theburningmonk.com
{ “x”: 42, “y”: 13 }
$ =>
{
“x”: 42,
“y”: 13,
“n”: 29
}
"double": {
“Type": "Task",
“Resource”: ”arn:aws:lambda:...",
“InputPath": "$.n",
“End": true
}
@theburningmonk theburningmonk.com
{ “x”: 42, “y”: 13 }
$ =>
{
“x”: 42,
“y”: 13,
“n”: 29
}
module.exports.handler = async (input, context) => {
return input * 2;
}
$.n
$
@theburningmonk theburningmonk.com
{ “x”: 42, “y”: 13 }
$ => 58
"double": {
“Type": "Task",
“Resource”: ”arn:aws:lambda:...",
“InputPath": "$.n",
“End": true
}
@theburningmonk theburningmonk.com
{ “x”: 42, “y”: 13 }
{ “output”: 58 }
@theburningmonk theburningmonk.com
"NoOp": {
 "Type": "Pass",  
 "Result": {
   "is": 42
 },
 "ResultPath": "$.the_answer_to_the_question_of_life_the_universe_and_everything",
 "Next": "NextState"
}
Pass
Passes input to output without doing any work.
@theburningmonk theburningmonk.com
"NoOp": {
 "Type": "Pass",  
 "Result": {
   "is": 42
 },
 "ResultPath": "$.the_answer_to_the_question_of_life_the_universe_and_everything",
 "Next": "NextState"
}
Pass
Passes input to output without doing any work.
@theburningmonk theburningmonk.com
Pass
Passes input to output without doing any work.
{ }
{
 “the_answer_to_the_question_of_life_the_universe_and_everything”: {
   “is”: 42
 }
}
@theburningmonk theburningmonk.com
"WaitTenSeconds" : {
 "Type" : "Wait",
 "Seconds" : 10,
 "Next": "NextState"
}
Wait
Wait before transitioning to next state.
"WaitTenSeconds" : {
 "Type" : "Wait",
“Timestamp": "2018-08-08T01:59:00Z",  
"Next": "NextState"
}
@theburningmonk theburningmonk.com
"WaitTenSeconds" : {
 "Type" : "Wait",
 "Seconds" : 10,
 "Next": "NextState"
}
Wait
Wait before transitioning to next state.
"WaitTenSeconds" : {
 "Type" : "Wait",
“Timestamp": "2018-08-08T01:59:00Z",  
"Next": "NextState"
}
@theburningmonk theburningmonk.com
"WaitTenSeconds" : {
 "Type" : "Wait",
 "SecondsPath" : "$.waitTime",
 "Next": "NextState"
}
Wait
Wait before transitioning to next state.
"WaitTenSeconds" : {
 "Type" : "Wait",
“TimestampPath": “$.waitUntil”,  
"Next": "NextState"
}
@theburningmonk theburningmonk.com
"ChoiceState": {
 "Type" : "Choice",
 "Choices": [
   {
      "Variable": "$.name",
     "StringEquals": "Neo"
     "Next": "RedPill"
   }
 ],
 "Default": "BluePill"
}
Choice
Adds branching logic to the state machine.
@theburningmonk theburningmonk.com
"ChoiceState": {
 "Type" : "Choice",
 "Choices": [
   {
      "Variable": "$.name",
     "StringEquals": "Neo"
     "Next": "RedPill"
   }
 ],
 "Default": "BluePill"
}
Choice
Adds branching logic to the state machine.
@theburningmonk theburningmonk.com
"ChoiceState": {
 "Type" : "Choice",
 "Choices": [
   {
      "Variable": "$.name",
     "StringEquals": "Neo"
     "Next": "RedPill"
   }
 ],
 "Default": "BluePill"
}
Choice
Adds branching logic to the state machine.
@theburningmonk theburningmonk.com
"ChoiceState": {
 "Type" : "Choice",
 "Choices": [
   {
      "Variable": "$.name",
     "StringEquals": "Neo"
     "Next": "RedPill"
   }
 ],
 "Default": "BluePill"
}
Choice
Adds branching logic to the state machine.
{
“And”: [
{
      "Variable": "$.name",
      "StringEquals": “Cypher"
    },
{
      "Variable": "$.afterNeoIsRescued",
      "BooleanEquals": true
    },
],
  "Next": "BluePill"
}
@theburningmonk theburningmonk.com
"FunWithMath": {
 "Type": "Parallel",
 "Branches": [
   {
     "StartAt": "Add",
     "States": {
       "Add": {
         "Type": "Task",
         "Resource": "arn:aws:lambda:us-east-1:1234556788:function:add",
         "End": true
       }
     }
   },
   …
 ],
 "Next": "NextState"
}
Parallel
Performs tasks in parallel.
@theburningmonk theburningmonk.com
"FunWithMath": {
 "Type": "Map",
 "Iterator": [
   {
     "StartAt": "DoSomething",
     "States": {
       "Add": {
         "Type": "Task",
         "Resource": “arn:aws:lambda:us-east-1:1234556788:function:doSomething",
         "End": true
       }
     }
   },
   …
 ],
 "Next": "NextState"
}
Map
Dynamic parallelism!
@theburningmonk theburningmonk.com
"FunWithMath": {
 "Type": "Map",
 "Iterator": [
   {
     "StartAt": "DoSomething",
     "States": {
       "Add": {
         "Type": "Task",
         "Resource": "arn:aws:lambda:us-east-1:1234556788:function:doSomething",
         "End": true
       }
     }
   },
   …
 ],
 "Next": "NextState"
}
Map
Dynamic parallelism!
e.g. [ { … }, { … }, { … } ]
@theburningmonk theburningmonk.com
"SuccessState" : {
 "Type" : "Succeed"
}
Succeed
Terminates the state machine successfully.
@theburningmonk theburningmonk.com
"FailState" : {
 "Type" : “Fail",
"Error" : "TypeA",
"Cause" : "Kaiju Attack",
}
Fail
Terminates the state machine and mark it as failure.
@theburningmonk theburningmonk.com
https://aws.amazon.com/about-aws/whats-new/2019/08/aws-step-function-adds-support-for-nested-workflows
WHEN TO USE STEP FUNCTIONS?
@theburningmonk theburningmonk.com
$25 PER MILLION
15X LAMBDA PRICING!
@theburningmonk theburningmonk.com
another moving part to manage
@theburningmonk theburningmonk.com
what’s the return-on-investment?
@theburningmonk theburningmonk.com
Pros Cons
$$$
@theburningmonk theburningmonk.com
https://aws.amazon.com/about-aws/whats-new/2019/12/introducing-aws-step-functions-express-workflows
@theburningmonk theburningmonk.com
Pros Cons
visual
$$$
@theburningmonk theburningmonk.com
Great for collaboration with team
members who are not engineers
@theburningmonk theburningmonk.com
Makes it easy for anyone to identify
and debug application errors.
@theburningmonk theburningmonk.com
Pros Cons
visual
$$$
error handling
@theburningmonk theburningmonk.com
Makes deciding on timeout setting for Lambda
functions easier when you don’t have to consider
retry and exponential backoff, etc.
@theburningmonk theburningmonk.com
Surfaces error handling for everyone to see, makes it
easy for others to see without digging into the code.
@theburningmonk theburningmonk.com
Pros Cons
visual
$$$
error handling
audit
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
Pros Cons
visual
$$$
error handling
audit
@theburningmonk theburningmonk.com
business critical workflows
what: stuff that makes money, e.g. payment and
subscription flows.
why: more robust error handling worth the premium.
@theburningmonk theburningmonk.com
complex workflows
what: complex workflows that involves many states,
branching logic, etc.
why: visual workflow is a powerful design (for product)
and diagnostic tool (for customer support).
@theburningmonk theburningmonk.com
long running workflows
what: workflows that cannot complete in 15 minutes
(Lambda limit).
why: AWS discourages recursive Lambda functions,
Step Functions gives you explicit branching checks,
and can timeout at workflow level.
@theburningmonk theburningmonk.com
https://aws.amazon.com/about-aws/whats-new/2019/12/introducing-aws-step-functions-express-workflows
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html
@theburningmonk theburningmonk.com
https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html
@theburningmonk theburningmonk.com
https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html
@theburningmonk theburningmonk.com
https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
use Express Workflows for high-throughput,
short-lived workflows (OLTP)
@theburningmonk theburningmonk.com
Pros Cons
visual
$$$
error handling
audit
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
Orchestration Choreography
@theburningmonk theburningmonk.com
Orchestration Choreography
@theburningmonk theburningmonk.com
orchestration within a bounded-context
choreography between bounded-contexts
Rule of Thumb
@theburningmonk theburningmonk.com
bounded context
fits within my head
high cohesion
same ownership
@theburningmonk theburningmonk.com
bounded context
the workflow doesn’t exist
as a standalone concept,
but as the sum of a series of
loosely connected parts
Lambda
Lambda
Lambda
SQS
SQS
API Gateway
@theburningmonk theburningmonk.com
bounded context A bounded context B bounded context C
EventBridge SNS
@theburningmonk theburningmonk.com
https://lumigo.io/blog/5-reasons-why-you-should-use-eventbridge-instead-of-sns
@theburningmonk theburningmonk.com
don’t forget to
emit events from
the workflow
@theburningmonk theburningmonk.com
orchestration within a bounded-context
choreography between bounded-contexts
Rule of Thumb
Step Functions in the wild
@theburningmonk theburningmonk.com
Backend system was slow and had
timing issue, so they needed to add a
90s delay before processing payment.
Step Functions was the most cost-
efficient and scalable way to
implement this wait.
@theburningmonk theburningmonk.com
Update nutritional info on over 100
brands to comply with FDA regulations.
Reduced processing time from 36 hours
to 10 seconds.
@theburningmonk theburningmonk.com
Transcode video segments in parallel.
Reduced processing time from ~20 mins
to ~2 mins.
@theburningmonk theburningmonk.com
Manages their food delivery experience.
@theburningmonk theburningmonk.com
Automates subscription fulfilments with
Step Functions.
@theburningmonk theburningmonk.com
Automates subscription billing system
with Step Functions.
@theburningmonk theburningmonk.com
Implements payment processing, and
subscription fulfillment systems with Step
Functions, and many more.
@theburningmonk theburningmonk.com
sagas
@theburningmonk theburningmonk.com
managing failures in a distributed transaction
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
Success path!
@theburningmonk theburningmonk.com
Failure paths…
@theburningmonk theburningmonk.com
"BookFlight": {
"Type": “Task",
"Resource": “arn:aws:lambda:…”,
"Catch": [
{
"ErrorEquals": [ “States.ALL" ],
"ResultPath": "$.BookFlightError",
"Next": “CancelFlight"
}
],
"ResultPath": "$.BookFlightResult",
"Next": "BookRental"
},
@theburningmonk theburningmonk.com
"BookFlight": {
"Type": “Task",
"Resource": “arn:aws:lambda:…”,
"Catch": [
{
"ErrorEquals": [ “States.ALL" ],
"ResultPath": "$.BookFlightError",
"Next": “CancelFlight"
}
],
"ResultPath": "$.BookFlightResult",
"Next": "BookRental"
},
@theburningmonk theburningmonk.com
"BookFlight": {
"Type": “Task",
"Resource": “arn:aws:lambda:…”,
"Catch": [
{
"ErrorEquals": [ “States.ALL" ],
"ResultPath": "$.BookFlightError",
"Next": “CancelFlight"
}
],
"ResultPath": "$.BookFlightResult",
"Next": "BookRental"
},
@theburningmonk theburningmonk.com
"CancelFlight": {
"Type": “Task",
"Resource": “arn:aws:lambda:…”,
"Catch": [
{
"ErrorEquals": [ “States.ALL" ],
"ResultPath": "$.CancelFlightError",
"Next": “CancelFlight"
}
],
"ResultPath": "$.CancelFlightResult",
"Next": “CancelHotel"
},
@theburningmonk theburningmonk.com
"CancelFlight": {
"Type": “Task",
"Resource": “arn:aws:lambda:…”,
"Catch": [
{
"ErrorEquals": [ “States.ALL" ],
"ResultPath": "$.CancelFlightError",
"Next": “CancelFlight"
}
],
"ResultPath": "$.CancelFlightResult",
"Next": “CancelHotel"
},
@theburningmonk theburningmonk.com
https://github.com/theburningmonk/lambda-saga-pattern
@theburningmonk theburningmonk.com
callbacks
@theburningmonk theburningmonk.com
https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-wait-token
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
TaskToken
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
TaskToken
?
@theburningmonk theburningmonk.com
?
@theburningmonk theburningmonk.com
sendTaskSuccess(TaskToken)
?
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
"Publish SQS message": {
 "Type": "Task",
 "Resource": "arn:aws:states:::sqs:sendMessage.waitForTaskToken",
 "Parameters": {
 "QueueUrl": !Ref MyQueue,
"MessageBody": {
"Token.$": "$$.Task.Token"
}
},
 "Next": "NextState"
}
@theburningmonk theburningmonk.com
"Publish SQS message": {
 "Type": "Task",
 "Resource": "arn:aws:states:::sqs:sendMessage.waitForTaskToken",
 "Parameters": {
 "QueueUrl": !Ref MyQueue,
"MessageBody": {
"Token.$": "$$.Task.Token"
}
},
 "Next": "NextState"
}
@theburningmonk theburningmonk.com
"Publish SQS message": {
 "Type": "Task",
 "Resource": "arn:aws:states:::sqs:sendMessage.waitForTaskToken",
 "Parameters": {
 "QueueUrl": !Ref MyQueue,
"MessageBody": {
"Token.$": "$$.Task.Token"
}
},
 "Next": "NextState"
}
@theburningmonk theburningmonk.com
"Publish SQS message": {
 "Type": "Task",
 "Resource": "arn:aws:states:::sqs:sendMessage.waitForTaskToken",
 "Parameters": {
 "QueueUrl": !Ref MyQueue,
"MessageBody": {
"Token.$": "$$.Task.Token"
}
},
 "Next": "NextState"
}
@theburningmonk theburningmonk.com
https://docs.aws.amazon.com/step-functions/latest/dg/input-output-contextobject.html
@theburningmonk theburningmonk.com
"Publish SQS message": {
 "Type": "Task",
 "Resource": "arn:aws:states:::sqs:sendMessage.waitForTaskToken",
 "Parameters": {
 "QueueUrl": !Ref MyQueue,
"MessageBody": {
"Token.$": "$$.Task.Token",
"ExecutionId.$": "$$.Execution.Id",
"StateMachineId.$": "$$.StateMachine.Id"
}
},
 "Next": "NextState"
}
@theburningmonk theburningmonk.com
sendTaskSuccess(TaskToken)
?
needs access to
Step Functions
@theburningmonk theburningmonk.com
HTTP POST
?
sendTaskSuccess
@theburningmonk theburningmonk.com
https://go.aws/38KynD1
@theburningmonk theburningmonk.com
TaskToken
@theburningmonk theburningmonk.com
map-reduce
@theburningmonk theburningmonk.com
Map
@theburningmonk theburningmonk.com
Map
…
@theburningmonk theburningmonk.com
Map
…
{ … }
{ … }
{ … }
{ … }
{ … }
@theburningmonk theburningmonk.com
Map
…
{ … }
{ … }
{ … }
{ … }
{ … }
[{ … }, { … } … ]
@theburningmonk theburningmonk.com
Map
…
{ … }
{ … }
{ … }
{ … }
{ … }
[{ … }, { … } … ] Reduce
@theburningmonk theburningmonk.com
https://github.com/awsdocs/aws-step-functions-developer-guide/blob/master/doc_source/limits.md
@theburningmonk theburningmonk.com
https://github.com/awsdocs/aws-step-functions-developer-guide/blob/master/doc_source/limits.md
use S3 to store
large payloads
theburningmonk.com/hire-me
AdviseTraining Delivery
“Fundamentally, Yan has improved our team by increasing our
ability to derive value from AWS and Lambda in particular.”
Nick Blair
Tech Lead
theburningmonk.com/courses
HALF PRICE during Sept
@theburningmonk
theburningmonk.com
github.com/theburningmonk

More Related Content

What's hot

Reactive Access to MongoDB from Scala
Reactive Access to MongoDB from ScalaReactive Access to MongoDB from Scala
Reactive Access to MongoDB from Scala
Hermann Hueck
 
Micro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateMicro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateKiev ALT.NET
 
GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑
Pokai Chang
 
XQuery in the Cloud
XQuery in the CloudXQuery in the Cloud
XQuery in the Cloud
William Candillon
 
Type safe embedded domain-specific languages
Type safe embedded domain-specific languagesType safe embedded domain-specific languages
Type safe embedded domain-specific languages
Arthur Xavier
 
Cutting Edge Data Processing with PHP & XQuery
Cutting Edge Data Processing with PHP & XQueryCutting Edge Data Processing with PHP & XQuery
Cutting Edge Data Processing with PHP & XQuery
William Candillon
 
Coding Ajax
Coding AjaxCoding Ajax
Coding Ajax
Ted Husted
 
Open Source Ajax Solution @OSDC.tw 2009
Open Source Ajax  Solution @OSDC.tw 2009Open Source Ajax  Solution @OSDC.tw 2009
Open Source Ajax Solution @OSDC.tw 2009
Robbie Cheng
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentationguest5d87aa6
 
Model-View-Update, and Beyond!
Model-View-Update, and Beyond!Model-View-Update, and Beyond!
Model-View-Update, and Beyond!
Simon Fowler
 
Automatically generating-json-from-java-objects-java-objects268
Automatically generating-json-from-java-objects-java-objects268Automatically generating-json-from-java-objects-java-objects268
Automatically generating-json-from-java-objects-java-objects268Ramamohan Chokkam
 
Basics of Java Script (JS)
Basics of Java Script (JS)Basics of Java Script (JS)
Basics of Java Script (JS)
Ajay Khatri
 
Frontin like-a-backer
Frontin like-a-backerFrontin like-a-backer
Frontin like-a-backer
Frank de Jonge
 
The jQuery Divide
The jQuery DivideThe jQuery Divide
The jQuery Divide
Rebecca Murphey
 
jQuery
jQueryjQuery
jQuery
Jay Poojara
 
D3.js and SVG
D3.js and SVGD3.js and SVG
D3.js and SVG
Karol Depka Pradzinski
 
Javascript
JavascriptJavascript
Javascript
mussawir20
 

What's hot (18)

Reactive Access to MongoDB from Scala
Reactive Access to MongoDB from ScalaReactive Access to MongoDB from Scala
Reactive Access to MongoDB from Scala
 
Micro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateMicro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicate
 
GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑
 
XQuery in the Cloud
XQuery in the CloudXQuery in the Cloud
XQuery in the Cloud
 
Dartprogramming
DartprogrammingDartprogramming
Dartprogramming
 
Type safe embedded domain-specific languages
Type safe embedded domain-specific languagesType safe embedded domain-specific languages
Type safe embedded domain-specific languages
 
Cutting Edge Data Processing with PHP & XQuery
Cutting Edge Data Processing with PHP & XQueryCutting Edge Data Processing with PHP & XQuery
Cutting Edge Data Processing with PHP & XQuery
 
Coding Ajax
Coding AjaxCoding Ajax
Coding Ajax
 
Open Source Ajax Solution @OSDC.tw 2009
Open Source Ajax  Solution @OSDC.tw 2009Open Source Ajax  Solution @OSDC.tw 2009
Open Source Ajax Solution @OSDC.tw 2009
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentation
 
Model-View-Update, and Beyond!
Model-View-Update, and Beyond!Model-View-Update, and Beyond!
Model-View-Update, and Beyond!
 
Automatically generating-json-from-java-objects-java-objects268
Automatically generating-json-from-java-objects-java-objects268Automatically generating-json-from-java-objects-java-objects268
Automatically generating-json-from-java-objects-java-objects268
 
Basics of Java Script (JS)
Basics of Java Script (JS)Basics of Java Script (JS)
Basics of Java Script (JS)
 
Frontin like-a-backer
Frontin like-a-backerFrontin like-a-backer
Frontin like-a-backer
 
The jQuery Divide
The jQuery DivideThe jQuery Divide
The jQuery Divide
 
jQuery
jQueryjQuery
jQuery
 
D3.js and SVG
D3.js and SVGD3.js and SVG
D3.js and SVG
 
Javascript
JavascriptJavascript
Javascript
 

Similar to How to ship customer value faster with step functions

How to ship customer value faster with step functions
How to ship customer value faster with step functionsHow to ship customer value faster with step functions
How to ship customer value faster with step functions
Yan Cui
 
Deliver Business Value Faster with AWS Step Functions
Deliver Business Value Faster with AWS Step FunctionsDeliver Business Value Faster with AWS Step Functions
Deliver Business Value Faster with AWS Step Functions
Daniel Zivkovic
 
Delightful steps to becoming a functioning user of Step Functions
Delightful steps to becoming a functioning user of Step FunctionsDelightful steps to becoming a functioning user of Step Functions
Delightful steps to becoming a functioning user of Step Functions
Yan Cui
 
QA Fest 2017. Яков Крамаренко. Minimum Usable Framework
QA Fest 2017. Яков Крамаренко. Minimum Usable FrameworkQA Fest 2017. Яков Крамаренко. Minimum Usable Framework
QA Fest 2017. Яков Крамаренко. Minimum Usable Framework
QAFest
 
GraphQL - when REST API is not enough - lessons learned
GraphQL - when REST API is not enough - lessons learnedGraphQL - when REST API is not enough - lessons learned
GraphQL - when REST API is not enough - lessons learned
MarcinStachniuk
 
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
CHOOSE
 
Pick up the low-hanging concurrency fruit
Pick up the low-hanging concurrency fruitPick up the low-hanging concurrency fruit
Pick up the low-hanging concurrency fruit
Vaclav Pech
 
Extreme Swift
Extreme SwiftExtreme Swift
Extreme Swift
Movel
 
Building Go Web Apps
Building Go Web AppsBuilding Go Web Apps
Building Go Web Apps
Mark
 
Persisting Data on SQLite using Room
Persisting Data on SQLite using RoomPersisting Data on SQLite using Room
Persisting Data on SQLite using Room
Nelson Glauber Leal
 
Wprowadzenie do technologi Big Data i Apache Hadoop
Wprowadzenie do technologi Big Data i Apache HadoopWprowadzenie do technologi Big Data i Apache Hadoop
Wprowadzenie do technologi Big Data i Apache Hadoop
Sages
 
Copy/paste detector for source code on javascript
Copy/paste detector for source code on javascript Copy/paste detector for source code on javascript
Copy/paste detector for source code on javascript
Andrey Kucherenko
 
Introduction to AWS Step Functions:
Introduction to AWS Step Functions: Introduction to AWS Step Functions:
Introduction to AWS Step Functions:
Amazon Web Services
 
How do you create a programming language for the JVM?
How do you create a programming language for the JVM?How do you create a programming language for the JVM?
How do you create a programming language for the JVM?
Federico Tomassetti
 
DataMapper
DataMapperDataMapper
DataMapper
Yehuda Katz
 
Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App Engine
Andy McKay
 
Announcing AWS Step Functions - December 2016 Monthly Webinar Series
Announcing AWS Step Functions - December 2016 Monthly Webinar SeriesAnnouncing AWS Step Functions - December 2016 Monthly Webinar Series
Announcing AWS Step Functions - December 2016 Monthly Webinar Series
Amazon Web Services
 
Ajax for dummies, and not only.
Ajax for dummies, and not only.Ajax for dummies, and not only.
Ajax for dummies, and not only.
Nerd Tzanetopoulos
 
JSON Fuzzing: New approach to old problems
JSON Fuzzing: New  approach to old problemsJSON Fuzzing: New  approach to old problems
JSON Fuzzing: New approach to old problemstitanlambda
 

Similar to How to ship customer value faster with step functions (20)

How to ship customer value faster with step functions
How to ship customer value faster with step functionsHow to ship customer value faster with step functions
How to ship customer value faster with step functions
 
Deliver Business Value Faster with AWS Step Functions
Deliver Business Value Faster with AWS Step FunctionsDeliver Business Value Faster with AWS Step Functions
Deliver Business Value Faster with AWS Step Functions
 
Delightful steps to becoming a functioning user of Step Functions
Delightful steps to becoming a functioning user of Step FunctionsDelightful steps to becoming a functioning user of Step Functions
Delightful steps to becoming a functioning user of Step Functions
 
QA Fest 2017. Яков Крамаренко. Minimum Usable Framework
QA Fest 2017. Яков Крамаренко. Minimum Usable FrameworkQA Fest 2017. Яков Крамаренко. Minimum Usable Framework
QA Fest 2017. Яков Крамаренко. Minimum Usable Framework
 
GraphQL - when REST API is not enough - lessons learned
GraphQL - when REST API is not enough - lessons learnedGraphQL - when REST API is not enough - lessons learned
GraphQL - when REST API is not enough - lessons learned
 
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
 
Pick up the low-hanging concurrency fruit
Pick up the low-hanging concurrency fruitPick up the low-hanging concurrency fruit
Pick up the low-hanging concurrency fruit
 
Extreme Swift
Extreme SwiftExtreme Swift
Extreme Swift
 
Building Go Web Apps
Building Go Web AppsBuilding Go Web Apps
Building Go Web Apps
 
Persisting Data on SQLite using Room
Persisting Data on SQLite using RoomPersisting Data on SQLite using Room
Persisting Data on SQLite using Room
 
Wprowadzenie do technologi Big Data i Apache Hadoop
Wprowadzenie do technologi Big Data i Apache HadoopWprowadzenie do technologi Big Data i Apache Hadoop
Wprowadzenie do technologi Big Data i Apache Hadoop
 
Copy/paste detector for source code on javascript
Copy/paste detector for source code on javascript Copy/paste detector for source code on javascript
Copy/paste detector for source code on javascript
 
Introduction to AWS Step Functions:
Introduction to AWS Step Functions: Introduction to AWS Step Functions:
Introduction to AWS Step Functions:
 
How do you create a programming language for the JVM?
How do you create a programming language for the JVM?How do you create a programming language for the JVM?
How do you create a programming language for the JVM?
 
huhu
huhuhuhu
huhu
 
DataMapper
DataMapperDataMapper
DataMapper
 
Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App Engine
 
Announcing AWS Step Functions - December 2016 Monthly Webinar Series
Announcing AWS Step Functions - December 2016 Monthly Webinar SeriesAnnouncing AWS Step Functions - December 2016 Monthly Webinar Series
Announcing AWS Step Functions - December 2016 Monthly Webinar Series
 
Ajax for dummies, and not only.
Ajax for dummies, and not only.Ajax for dummies, and not only.
Ajax for dummies, and not only.
 
JSON Fuzzing: New approach to old problems
JSON Fuzzing: New  approach to old problemsJSON Fuzzing: New  approach to old problems
JSON Fuzzing: New approach to old problems
 

More from Yan Cui

How to win the game of trade-offs
How to win the game of trade-offsHow to win the game of trade-offs
How to win the game of trade-offs
Yan Cui
 
How to choose the right messaging service
How to choose the right messaging serviceHow to choose the right messaging service
How to choose the right messaging service
Yan Cui
 
How to choose the right messaging service for your workload
How to choose the right messaging service for your workloadHow to choose the right messaging service for your workload
How to choose the right messaging service for your workload
Yan Cui
 
Patterns and practices for building resilient serverless applications.pdf
Patterns and practices for building resilient serverless applications.pdfPatterns and practices for building resilient serverless applications.pdf
Patterns and practices for building resilient serverless applications.pdf
Yan Cui
 
Lambda and DynamoDB best practices
Lambda and DynamoDB best practicesLambda and DynamoDB best practices
Lambda and DynamoDB best practices
Yan Cui
 
Lessons from running AppSync in prod
Lessons from running AppSync in prodLessons from running AppSync in prod
Lessons from running AppSync in prod
Yan Cui
 
Serverless observability - a hero's perspective
Serverless observability - a hero's perspectiveServerless observability - a hero's perspective
Serverless observability - a hero's perspective
Yan Cui
 
How serverless changes the cost paradigm
How serverless changes the cost paradigmHow serverless changes the cost paradigm
How serverless changes the cost paradigm
Yan Cui
 
Why your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncWhy your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSync
Yan Cui
 
Build social network in 4 weeks
Build social network in 4 weeksBuild social network in 4 weeks
Build social network in 4 weeks
Yan Cui
 
Patterns and practices for building resilient serverless applications
Patterns and practices for building resilient serverless applicationsPatterns and practices for building resilient serverless applications
Patterns and practices for building resilient serverless applications
Yan Cui
 
How to bring chaos engineering to serverless
How to bring chaos engineering to serverlessHow to bring chaos engineering to serverless
How to bring chaos engineering to serverless
Yan Cui
 
Migrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsMigrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 steps
Yan Cui
 
Building a social network in under 4 weeks with Serverless and GraphQL
Building a social network in under 4 weeks with Serverless and GraphQLBuilding a social network in under 4 weeks with Serverless and GraphQL
Building a social network in under 4 weeks with Serverless and GraphQL
Yan Cui
 
FinDev as a business advantage in the post covid19 economy
FinDev as a business advantage in the post covid19 economyFinDev as a business advantage in the post covid19 economy
FinDev as a business advantage in the post covid19 economy
Yan Cui
 
How to improve lambda cold starts
How to improve lambda cold startsHow to improve lambda cold starts
How to improve lambda cold starts
Yan Cui
 
What can you do with lambda in 2020
What can you do with lambda in 2020What can you do with lambda in 2020
What can you do with lambda in 2020
Yan Cui
 
A chaos experiment a day, keeping the outage away
A chaos experiment a day, keeping the outage awayA chaos experiment a day, keeping the outage away
A chaos experiment a day, keeping the outage away
Yan Cui
 
How to debug slow lambda response times
How to debug slow lambda response timesHow to debug slow lambda response times
How to debug slow lambda response times
Yan Cui
 
What can you do with lambda in 2020
What can you do with lambda in 2020What can you do with lambda in 2020
What can you do with lambda in 2020
Yan Cui
 

More from Yan Cui (20)

How to win the game of trade-offs
How to win the game of trade-offsHow to win the game of trade-offs
How to win the game of trade-offs
 
How to choose the right messaging service
How to choose the right messaging serviceHow to choose the right messaging service
How to choose the right messaging service
 
How to choose the right messaging service for your workload
How to choose the right messaging service for your workloadHow to choose the right messaging service for your workload
How to choose the right messaging service for your workload
 
Patterns and practices for building resilient serverless applications.pdf
Patterns and practices for building resilient serverless applications.pdfPatterns and practices for building resilient serverless applications.pdf
Patterns and practices for building resilient serverless applications.pdf
 
Lambda and DynamoDB best practices
Lambda and DynamoDB best practicesLambda and DynamoDB best practices
Lambda and DynamoDB best practices
 
Lessons from running AppSync in prod
Lessons from running AppSync in prodLessons from running AppSync in prod
Lessons from running AppSync in prod
 
Serverless observability - a hero's perspective
Serverless observability - a hero's perspectiveServerless observability - a hero's perspective
Serverless observability - a hero's perspective
 
How serverless changes the cost paradigm
How serverless changes the cost paradigmHow serverless changes the cost paradigm
How serverless changes the cost paradigm
 
Why your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncWhy your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSync
 
Build social network in 4 weeks
Build social network in 4 weeksBuild social network in 4 weeks
Build social network in 4 weeks
 
Patterns and practices for building resilient serverless applications
Patterns and practices for building resilient serverless applicationsPatterns and practices for building resilient serverless applications
Patterns and practices for building resilient serverless applications
 
How to bring chaos engineering to serverless
How to bring chaos engineering to serverlessHow to bring chaos engineering to serverless
How to bring chaos engineering to serverless
 
Migrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsMigrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 steps
 
Building a social network in under 4 weeks with Serverless and GraphQL
Building a social network in under 4 weeks with Serverless and GraphQLBuilding a social network in under 4 weeks with Serverless and GraphQL
Building a social network in under 4 weeks with Serverless and GraphQL
 
FinDev as a business advantage in the post covid19 economy
FinDev as a business advantage in the post covid19 economyFinDev as a business advantage in the post covid19 economy
FinDev as a business advantage in the post covid19 economy
 
How to improve lambda cold starts
How to improve lambda cold startsHow to improve lambda cold starts
How to improve lambda cold starts
 
What can you do with lambda in 2020
What can you do with lambda in 2020What can you do with lambda in 2020
What can you do with lambda in 2020
 
A chaos experiment a day, keeping the outage away
A chaos experiment a day, keeping the outage awayA chaos experiment a day, keeping the outage away
A chaos experiment a day, keeping the outage away
 
How to debug slow lambda response times
How to debug slow lambda response timesHow to debug slow lambda response times
How to debug slow lambda response times
 
What can you do with lambda in 2020
What can you do with lambda in 2020What can you do with lambda in 2020
What can you do with lambda in 2020
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 

How to ship customer value faster with step functions