►
From YouTube: CNCF Serverless Working Group 2020-11-02
Description
CNCF Serverless Working Group 2020-11-02
A
A
B
D
B
B
Do
that,
just
out
of
curiosity,
did
you
did
you
implement
a
ping
service
like
I
described
here.
D
Yeah,
it's
just.
I
need
to
check
the
the
ping
is
not
exactly
the
same.
I
have
a
pink
service
and
a
cat
service
which
I
can
call
the
way
I
want.
So
I
call
it
garfield
and
then
basically,
every
15
seconds,
the
cats
send
an
event
of
like
an
action
like
you're
sleeping
sitting,
yarning
or
whatever,
and
I
also
did
the
gateway
so,
but
I
I
can,
while
we
wait,
I
can
show
you
what
I
did
and
I
can
restart
if
someone
joins
yeah.
I
don't
mind.
B
D
Okay,
there's
like
those
max
with
like
a
broken
keyboard.
It's
super
annoying.
D
E
D
I
can
also
subscribe
to
barefield
and
in
that
case,
we'll
start
receiving
so
thing
is
every
five
seconds
while
garfield
is
every
15,
so
in
the
next
five
seconds
we
should
see
a
garfield
here,
excellent,
so
that's
nice.
But
for
me
it's
just
like
one
part.
D
Now
I
have
a
gateway
which
is
intermediary
right
now.
He
has
nothing
like
in
the
discovery.
You
can
see
it's
empty,
but
I
want
the
gateway
to
start
proxy
and
like
being
the
intermediary
of
garfield,
so
I'm
gonna
ask
it
to
connect
to
garfield.
So
now
you
can
see
that
in
the
discovery
I
have
this.
D
So
if
I
subscribe
to
the
gateway
so
now
like
the
little,
the
green
thing
is
just
to
show
that
I
was
subscribing
to
this.
So
I
should
see
the
events
arriving
here
within
the
15
seconds.
So
you
see
here
one
event,
of
course,
if,
as
a
consumer
I
subscribe
to
birth,
then
in
the
next
15
seconds
we
will
see
a
double
event,
because
I
will
receive
it
from
the
gateway
and
also
from
the
garfield
service.
So
here
that's
why
we
see
a
double
one.
B
D
Yeah
like
yeah,
so
basically
it's
like
I'm
calling
this.
So
I
did
some
simplification
because
it's
still
quite
a
bit
of
work
to
implement
all
that
and
do
the
ui
but,
like
I
didn't,
send
the
subscription
config
so
like,
and
I
raised
some
questions
by
doing
like
by
doing
that,
even
on
the
sdks
side.
The
way
we
emit
the
the
event.
So
I
did
publish
everything
on
github
and
my
goal
is
also
like
to
open
the
discussion
to
understand
so
like
in
that
gateway.
D
I
can
also
connect
to
ping
and
then
suddenly,
so
you
see
the
gateway
who
will
expose
basically
those
two
sources
and
send
events
from
both
and
like
it
allows
me.
My
scenario
is
basically
garfield
or
ping
will
be
github
and,
like
other
of
our
provider,
my
gateway
will
be
like
an
xo
gateway,
and
so
my
employee
will
go
to
the
gateway
like
my
teams
and
they
don't
care
about
how
the
gateway
connects
to
garfield.
B
D
Because,
like
I
want
to
be
able
to
have
network
isolation
between
so
and
like
this
gateway
should
like,
there
is
way
more
feature
that
I
should
add.
I
was
just
staying
at
like
a
simple
first
level,
but
so
when
you
connect
it
automatically
subscribe
to
the
service
for
now
without
filter.
So
it's
already
start
to
proxy,
even
if
no
one
has
subscribed
to
the
service
yet
so
like.
I
don't
do
cleaver
matching
to
understand.
D
B
D
D
So
this
part
is
basically
an
api
that
is
not
in
the
spec.
It's
like
a
proxies.
What
I
call
that
is
the
api
ic
for
the
cloud
events
gateway
just
to
say:
okay,
like
go
and
discover
this
service
for
me
and
just
start
proxying
it
and
same
thing
for
everyone.
So
whenever
you
click
connect,
that's
where
normally,
if
I
had
a
schema
on
a
subscriber
subscription
configuration,
I
will
pop
like
a
form
that
for
you
to
feel
what
you
have
to
feel
and
to
subscribe.
But
yeah.
B
D
B
Like
it
a
lot
so
so
let
me
answer
some
questions
as
you're
coding.
This
up,
since
your
ui
thingy
here
can
subscribe
to
all
three
things:
did
you
have
to
put
in
any
specialized
code
depending
on
what
you
subscribe
to
or
is
the
subscribe,
100
generic
and
you
only
used
metadata
from
the
discovery
endpoint.
B
D
Only
use
for
now
I
just
put
the
url,
and
I
consider
that
the
subscription,
because
this
subscription
api,
like
there
is
a
few
things
that
are
weird
in
my
opinion,
is
we
put
for
now.
The
api
of
the
subscription
is
about
posting
on
a
slash
subscription
endpoints,
but
yet
on
every
service
we
put
the
url
of
the
subscription
url.
So
in
fact
it's
the
same
for
every
service
when
you're
in
the
discovery
panel.
D
So
that's
like
small
stuff,
but
it's
I
was
like.
Okay,
can
you?
Can
you
repeat
that
more
time
you
lost
me
yeah?
Sorry
like
I
can
probably
show
a
bit
of
the
code
before
it
might
explain
what
I
do
so.
The
ui
basically
talks
to
this
service,
where
it's
like
just
a
demo,
to
get
like
all
the
events,
because,
as
inside
the
ui,
I
cannot
expose
the
port
to
get
the
evidence.
D
F
D
D
B
D
Here
so
I
say:
okay,
I
want
to
subscribe
to
this
service
url,
so
we
will
go
to
that.
Do
slash
discover
like
on
that
one.
I
do
agree,
it's
a
shortcut
because
it
should
do
the
slash,
discover
it's
like
service
to
get
the
subscription
url,
but
basically
as
if
you
look
every
time,
the
subscription
url
for
me
is
the
url
subscriptions.
D
D
D
So
if
I
click
here
where
I'm
sending
is
in
fact
you
can
see
the
response
I
have
the
full.
I
think
preview
is
better.
You
have
the
full
stuff
with
the
subscription
url.
So
I
could.
I
could
use
that.
So
it's
just
I
do
agree.
I
cheated
a
bit
because
I
finished
yesterday
at
10
am
so.
B
No
because
because
my
question
was
because
the
reason
I
asked
that
question
was
because
I
wanted
to
make
sure
that
sure
your
implementation
may
choose
to
cheat,
because
you
know
you're
talking
to
yourself
and
whatever.
But
I
wanted
to
make
sure
that
there
wasn't
something
missing
in
the
specification
so
that
you
could
have
done
it
through
discovery
as
opposed
to
shortcut
and
sheets.
D
My
shortcut
is
really
a
quick
like
I
could
almost
fix
it
in
a
few
sec,
because
right
now,
I'm
taking
the
url
of
the
service
that
I
display
here.
Why?
Basically,
the
only
thing
I
have
to
do
is
to
take
the
url
that
is
shown
in
this
pattern.
So
it's
really
quick,
but
what
I
was
saying
is
more
like
I
think
when
I
I'm
gonna
subscribe
to
this
one.
D
If
I
sub
connect
those
two
so
now
I
have
like
the
gateway
with
like
the
two
two
type,
and
here
you
will
see
that
the
subscription
url
will
end
up
being
now.
I
did
an
overwrite
because
it
should
be
that's
where.
Basically,
I
should
override
the
subscription
url
to
say.
F
D
Now
it's
a
gateway,
it's
not
the
original
service
right,
that's
basically
what
I
do
because
my
shortcut
is
enabling
that
by
just
because
when
I
click
on
that
it's
gonna
be
called
the
right
fueler.
D
So
that's
just
I
need
to
override
this
part,
but
it
was
not
really
in
part
of
the
spec,
because
it's
more
part
of
the
service
that
I
call
a
gateway
which
is
basically
not
this
one,
it's
in
the
discovery,
but
what
I
really
noticed
also
is
the
current
sdk
doesn't
match,
doesn't
fit
well
with
description
and
discovery,
because
the
way
you
send
the
events
once
you
emit
the
event
you
need
to
already
know.
What
is
your
current
subscription
to
send
to
the
current
subscriptions
and
the
way
the
sdk
was
designed?
D
B
So
I'll
make
sure
you
understand
that
because
scott's
on
the
call,
when
you
say
the
sdk,
do
you
mean
specifically
the
javascript
or
typescript
sdk?
Or
do
you
mean
all
sdks
probably
have
the
same
problem.
D
F
D
Then
I
just
create
this
new
cloud
event,
but
I
had
to
create
the
cloud
event
emitter
because
in
fact,
the
way
the
sdk
was
I
was
not
able
to
plug
to
the
emission
of
the
events.
So
in
fact,
then
this
thing
will
call
and
that's
why
I
created.
I
created
the
emitter
where
basically
I
say:
okay
emit
me
this
cloud
event
and
then
it
will
aim
it
as
an
event.
D
So
then,
my
subscription
service
can
subscribe
to
this
type
of
events
to
redistribute
it
to
all
its
subscription,
because
if
you
don't
do
that,
then
you
only
consider
it's
a
static
emission.
You
only
name
it
to
one
endpoint
to
yeah.
G
Golang
doesn't
have
that
issue.
Okay,.
G
I
I
came
in
about
10
minutes
late
forgot
about
this
meeting,
because
dougie
doug
did
not
put
it
on
the
calendar.
All
right.
D
D
D
G
I
I
D
It
was
just
like,
so
I
need
to
find
the
because
I
don't
think
the
example
are
good
enough.
D
Yeah,
I
can
come
back
to
that.
I
suppose,
if
I
try
to
go
too
much
in
the
deep
there
and
I
will
lose
everyone,
but
if
you
haven't
seen
scott,
I
can
we
show
quickly
this.
D
I
did
see
this
yeah
okay,
so
the
nice
thing
is
like
this:
ui
could
be
plugged
almost
everywhere.
So
I
just
need
to
add
like
something
to
add
new
services,
and
then
you
can
define
your
own
service
and
you
can
play
around
to
see
the
events
and
the
discovery.
D
Yeah
for
me,
I
implemented
to
be
honest.
This
way
I
propose
also
like
a
refactor
just
to
say
it
should
be
this
way
with,
like
you
create
a
new
subscription,
you
get
the
list
of
subscription,
you
get
one,
so
I
didn't
implement
this
way
because,
like
it
was
not
making
sense
to
to
use
the
old
endpoint
because,
like
you
are,
you
are
the
one
specifying
the
id
or
stuff
like
that,
where
I
don't
think
it
should
be.
So
I.
D
D
C
B
G
G
And
if
you
don't
remember,
it's
so
service
one
down
streams
to
service
two
so
basically
like
this
is
the
resulting
catalog
of
this
service
and
it's
pulling
from
this
middle
service.
And
then
the
middle
service
is
going
to
pull
from
the
rightmost
service.
So
note,
c,
service
outdated,
is
here
outdated
and
before
before
we
had
epoch
that
outdated
service
would
would
propagate
the
ring
as
a
little
bubble
of
incorrect
data.
G
B
Works
so
when
you
say
the
I
want
to
make
sure
on
the
same
page,
let
me
say:
epoch
thing
works.
Is
it
because
you
assume
that
if
you
change
any
metadata
about
the
service,
you
now
own
the
service.
G
Oh
okay,
so
and
then
I
was
like,
would
it
wouldn't
it
be
cool
if
this
discovery
service
could
actually,
you
know,
host
itself?
G
G
So
this
this
is
a
particular
service
and
it
is
the
subscription
endpoint
for
this
discovery
service
directly.
So
we
can
leverage
that
over
here,
I'm
gonna,
I'm
gonna
run
a
little
bit.
B
B
Entry,
but
your
your
list
of
events
is
interesting.
Is
that
the
is
that
the
list
of
events
that
were
generated
or
is
that
the
list
of
events
that
you
can
get.
G
B
G
G
No
okay,
so
the
only
8080
is
running
and
then
I'm
going
to
run
the
clients
make
sure
that
sockeye
is
visible,
and
so
I
get
that
service
subscribe.
It
has
no
content
type,
no
data,
it's
just
I
subscribed,
and
now
I
can
do
the
the
same
demo
over
here
where
middle
service
propagates
the
c
and
d
services,
and
they
show
up
that's
neat
and
then
I
can
run
the
final
service
in
the
ring,
and
I
should
see
changes
every
year
on
sockeye.
G
And
so
sockeye
collates
on
subject
and
the
subject
happens
to
be
the
service
that
it's
talking
about,
because
this
particular
event
stream
is
about
service
entries
in
the
discovery
catalog,
and
so
you
can
see
when
c
was
added
and
it
was
the
outdated
description
and
now
it's
it's
been
updated
and
it's.
The
description
is
the
correct
and
we
also
got
we
added
d
and
a
and
b
all
right.
So
that's
basically
my
demo.
G
I
can
oh,
oh
right.
Oh
sorry,
okay,
wait!
One
one!
One
change!
So
we'll
shut
this
down.
There's
no
storage!
On
my
this.
This
thing
we
will
add
the
filtering,
so
I
only
want
to
see
updated
events
too
much
and
then
we'll
register
here.
G
G
G
Cool,
so
we
only
got
one
event
because
the
filtering
works
and
we
get
that
one
updated
event
from
the
internal
discovery.
So
why
I'm
showing
you
this
is.
We
can
get
both
push
and
pull
for
catalog
changes
based
on
this,
because
you
can
pull
the
the
end
point
or
you
could
register
you
could
subscribe
to
it
and
get
changes
which
is
kind
of
cool.
B
So,
for
example,
you
guys
both
did
something
completely
different
with
your
discovery,
endpoints
right
scott,
you
got
the
circular
thing
you
do
subscribe
to
it
remy
you
did
a
gateway
thing
going
up
to
it,
and
maybe
maybe
we
should
leave
a
completely
free
form,
so
people
can
do
completely
different
things
and
try
to
push
the
system.
B
B
G
D
It's
a
subscription
url,
but
then
that
means
you
need
to
have
a
subscription
api.
The
only
issue
there
is
like,
but
it
seems
that
we
are
on
the
same
page
and
with
scott
is
we
need
to
upgrade
the
subscription
api
because
the
current
version
is
honestly
not
good
to
implement
so.
D
Like
we
need
to
validate
the
new
change
in
the
subscription
api
because
we
don't
want
people
to
implement
the
current
version
of
the
subscription
api,
like
oh.
D
D
Just
at
least,
let's
try
to
enjoy
the
same
way
all
together
by
following.
L
K
One
okay,
so
this
just
a
quick
feedback.
I
mean
I
because
even
I
started
working
on
my
demo,
I
was
not
able
to
finish
it
on
time.
I
kind
of
don't
agree
that
having
discovery
and
points
should
be
a
minimum
criteria,
because
I
stopped
I
was
assuming
the
fact
that
there's
already
a
discovery
endpoint
which
is
enlisting
the
subscription
url.
So
I
started
working
on
the
second
half
so
does
it
really
make
sense
to
have
that
as
a
mandate.
K
The
implementation
of
subscription
manager
and,
basically
assuming
that
that
url
is
already
available
in
the
discovery
endpoint,
so
you
still
need
to
connect
the
event
producer
with
the
consumer,
and
that
is
the
logic
of
subscription
managers.
I
wanted
to
implement
just
the
subscription
api
and
basically
have
a
messaging
back
and
connect
to
it.
B
K
D
The
thing
for
me
is
like
because
the
next
mine
is
still
under
locals,
but
I
saw
that
scotch
is
using
like
already
a
public
endpoint,
so
we
could
all
make
them
publish
and
then
to
subscribe.
We
will
need
to
have
the
discovery
that
works
so
depending
for
me.
If
you
cut
it
or
not,
it's
fine,
it's
just
it
needs
to
be
there.
At
the
end
point.
D
K
Yeah,
I
think
it
does
make
sense
so
because
you
really
need
to
have
the
url
that
needs
to
be
published
as
a
part
of
your
discovery
response
right.
So
it
does
make
sense
to
have
the
subscription
manager
or
the
implementation
of
the
subscription
api.
First
before
we
start
having
a
response
from
the
for
the
discovery,
endpoint.
B
K
No,
no
I'm
not
this,
I'm
not
saying
that
we
should
not
have
it.
I'm
saying
it
should
be
as
part
two.
So
first
you
need
to
have
the
url
to
which
you
can
subscribe
to
and
then
basically,
then
you
would
create
a
metadata
right.
So
implementation
comes
before
metadata
or
the
metadata
comes
before
implementation.
It's
just.
G
K
Subscription
you
are
earning
subscription
consuming,
I
mean
that's
probably
because
you
already
had
the
insight
about
what
url
you
want
to
subscribe
to.
Right
I
mean,
but
in
a
case
where
we
don't
have
the
information
that
what
you
are
to
subscribe
to.
In
that
case,
the
subscription
av
implementation
should
go
first
right.
D
B
D
D
B
Okay,
so
if
that's
the
minimum,
people
need
to
do
just
to
participate,
do
we
need
to
talk
at
all
about
what
do
we
do
to
actually
test
this
out
to
make
sure,
for
example,
people
can
talk
to
the
discovery
service
to
do
a
subscription,
or
should
we
just
say
no,
everybody
sort
of
write
their
own
client
tester
thingy,
and
we
want
variations
there
to
push
the
boundaries.
B
D
Was
thinking
is,
maybe
I
can
also
put
the
ui
like,
even
as
a
separate
project,
because
the
ui
is
not
specific
to
typescript.
So
if
we
want
to
iterate
on
that
to
add
more
stuff
like
I
liked
the
more
detailed
version
of
scott
he's
just
doing
the
ui,
it
takes
a
few
hours,
at
least
so,
maybe
if
we
just
have
a
common,
because
it's
agnostic
to
the
technology,
so
the
ui
should
be
almost
a
separate
stuff
that
we
can
all
rely
on.
You
know.
B
D
G
B
G
But
yeah
I
can
say.
D
With
these
it's
it
just
presents
cloud
events
in
the.
H
D
B
So,
scott,
the
ability
to
subscribe
to
the
discovery,
endpoint
itself
to
get
changes.
Do
you
want
to
make
your
the
metadata
about
the
discovery
service
itself
available?
So
people
can
basically
copy
that
and
steal
it
if
they
want
to
spit
out
events
for
the
discovery
endpoint?
That
way,
we
have
some
consistency.
B
B
C
G
D
If,
like
on
my
side,
I
was
proxying
directly
without
cache,
so
I
didn't
really
had
an
issue
with
the
epoch
because
in
fact,
whenever
you
query,
it
requires
all
the
service
which
wouldn't
be
sustainable
in
a
full
production
environment.
So
I
need
to
to
implement
more,
like
the
caching
and
stuff
like
that.
D
K
Just
a
quick
question
to
scott
scott,
where,
where
are
the
events
finally
resting?
Is
it
so?
Is
there
a
messaging
system
behind
the
implementation
of
this
poc.
G
No,
no,
no
there,
it's
all!
It's
all
just
fire
and
forget.
G
The
number
of
dependencies
on
this,
my
implementation,
the
config,
does
ship
it
out
to
a
k
native
service.
My
thinking
is
that
I'm
going
to
set
the
the
scale
to
min
1
and
then
you
know
maybe
make
it
live
for
like
15
minutes
or
something,
and
then
when
no
one's
touching
the
demo,
it
goes
away
and
resets.
B
B
So
if
we
wanted
to
register
some
so
scott,
let's
say
I
wanted
to
take
your
services
and
register
them
into
my
discovery.
Endpoint.
Is
that
something
that
is
possible,
and
we
should
do
that
way?
I
can
add
more
stuff
and
test
out
to
make
sure
your
subscription
manager
can
can
be
hooked
up
to
my
discovery,
endpoint
that
I
can
then
subscribe
to
without
having
to
go
through
your
discovery,
endpoint
yeah,
I
might
have
to
add,
like.
G
D
On
my
side,
like
with
the
ui,
I've
shown
you
if
I
make
it
available
online,
and
I
just
add
you
the
plus,
then
you
can
do
plus
and
then
you
create
you,
put
the
url
of
your
service
and
then
automatically
will
be
available
on
the
ui,
and
you
can
also
click
on
the
gateway
and
ask
it
to
connect
and
do
right.
So
it's
really
just
adding
a
button
on
my
side,
and
I
can
put
it
if
I
put
it
online,
then
we
can
all
play
around
with
it.
It's
just.
D
There
is
no
authentication
and
we
will
all
share
the
same
ui
because
under
the
hood,
it's
the
same
service.
Unless
I
manage
session
on
it.
D
That
your
ui
could
call
yeah,
that's
already
what
I
did
no
right
but
like
on
my
ui.
Basically,
what
I
will
say
is:
if
I
send
let
me
if
your
service
stays
at
like
scott.com,
then
I
will
put
scott.com
into
the
ui.
It
will
ask
my
api
to
do
a
discovery.com
services
from
that
you
will
get
your
all
your
services
and
when
you
click
subscribe,
you
will
use
the
subscription
url
to
subscribe
to
it
and
then
it
will
display
automatically.
D
But
I
will
get
the,
why
do
you
say
I
won't
get
because
for
now
it's
just
a
proxy.
So
every
time
I
ask
to
the
gateway,
we'll
ask
you
and
you
will
just
proxy
the
call.
G
Right,
but
so
I
need
these
downstream
services
or
upstream
services
to
be
able
to
register
into
the
my
discovery
endpoint,
because
it
itself
is
an
aggregate.
D
Well,
like
I
can
put
the
two
other
services
like
the
ping
service,
and
so
we
can
all
display
our
ping
services
and
like
for
me
it
was
a
cat
but
yeah.
I
can
continue
with
this
one,
and
the
thing
is
those
services
like
a
small
discovery
and
an
endpoint.
They
already
have
everything
for
me.
They
are
ready
to
go
those
ones
they
manage
subscriptions
and
and
discovery.
D
D
Because
and
then
what
I
was
thinking
is
just
to
put
the
ui
to
be
accessible
for
everyone.
So
this
way
you
don't
have
to
rebuild
it.
You
can
just
use
it
because
the
ui
is
just
if
I
reach,
basically
it
proxy
the
discovery
proxy
also,
so
it
allows
you
to
in
one
ui,
it's
kind
of
a
client
for
the
discovery
and
and
the
subscription.
B
But
remy
you,
you
just
do
a
simple
get
to
the
discovery
endpoint
to
grab
list
of
services
and
to
aggregate
right.
D
Yeah
when
I
aggregate
it's,
if
I
so
the
aggregation,
so
what
I
call
the
gateway
we'll
do
the
get
on
all
the
different
services
that
he
knows
to
get
all
the
the
source
and
displayed.
It
will
call
the
slash
service
on
each
proxy
and
then
aggregate
them
into
one
view.
D
For
now
what
I
do
like,
I
didn't
cache
it
and
it's
basically,
if
the
client,
so
the
web
browser
is
asking
to
discover,
then
it
will
redo
the
it
will
launch
10
requests
in
the
background
and
answer
with
one
okay.
So
I
don't.
There
is
no
cache,
so
there
is
no
interest
of
it's
always
up
to
date,
because
I'm
always
asking
to
the
final
service,
which
is
discovery,
is
okay:
okay,
cool.
B
Okay,
all
right,
I
think
that's
probably
enough
for
today
I
think,
once
we
get
our
various
discovery
endpoints
up
there,
people
can
actually
start
hitting
them
and
playing
with
them.
I'm
sure
we'll
need
to
get
back
together
and
complain
about
each
other's
implementation
choices.
D
For
me,
it's
really
more
the
subscription
api,
where
I
was
my
my
two
biggest
I
would
say
issue
is
the
subscription
api.
We
need
to
validate
the
new
version
that
we
probably
both
implement
alike,
but
to
make
sure
that
we
have
exactly
the
same
now,
and
the
second
is
the
sdk
and
the
javascript
sdk,
because
I
think
I
should
push
back
some
of
the
modifications
I
did
inside
the
sdk,
but
I
would
like
to
have
more
architectural
discussion
with
the
sdk
people
on
that,
because
I
don't
want
to
change
code
without
them.
D
K
D
Oh,
I
had
to
build
it
yeah
thing
and
I
that's
why
I'd
like
to
push
it
back.
I
had
to
appear
on
the
sdk,
the
javascript
sdk
for
the
discovery
service,
but
it's
yeah
and
in
fact,
while
doing
the
full
implementation,
like
with
the
dependency
with
subscription
api,
I
think
there's
something
to
discuss
there.
B
K
So
I
mean
basically,
you
would
have
something
by
the
end
of
the
project.
We
would
have
something
like,
let's
say,
a
subscription
api
listener
receiver
or
subscription
api
receiver.
So
you
don't
have
to
implement
your
own
on
receiver
for
the
subscription
api.
It
should
have
been
offered
by
the
sdk
out
of
the
box.
Okay,.
B
K
So
it's
it's
a
registration
endpoint
where
you
simply
start
a
server
and
then
the
user
of
the
sdk
registers
their
functions
like
what,
if
you
receive
a
get
request
or
if
you
receive
get
because
it's
a
subscription
or
a
create,
subscription,
request
and
stuff
like
that
right
and
in
that
way.
So
basically
we
wanted
to
abstract
some
of
these
http
protocol
specific
boilerplate
into
the
sdk.
That's
what
I'm,
assuming
that
we
would
head
on
down
the
line.
Okay,.
K
K
D
Got
it
cool
yeah?
Another
thing
I
did
implement
was
just
like
a
simple
security
check
on
my
side
like
when
I
subscribed.
I
already
had
like
a
header
with
like
a
secret
when
I
received
the
event
I
verified
that
that
secret
is,
is
the
one
I
sent
before
like
when
I
subscribe
because
yeah.
I
know
that
we
try
to
keep
the
security
aside
the
spec,
but
maybe
it's
because
I
work
in
security
field.
B
B
Okay,
okay,
is
there
anything
else?
You
guys
think
we
need
to
talk
about
because
it
sounds
like
people
just
need
to
go
out
and
finish
up.
Their
implementations
add
their
metadata
for
like
a
better
phrase
to
this
webpage
or
to
this
google
doc,
and
then
I
think
this
week's
call
is
a
discovery
call
after
the
usual
one,
so
we
can
continue
the
discussions
there.
B
Obviously,
if
we
have
any
issues
we
want
to
bring
up,
we
can
use
the
slack
channel
yeah
anything
else.
You
guys
want
to
talk
about
right
now,.
D
F
B
I
have
I
have
a
lot
of
the
same
thing
you
guys
do.
Obviously
I
have
a
little
test.
Client
allows
me
to
do
subscribes
and
stuff.
I
need
the
biggest
thing
for
me.
I
think,
is
just
to
make
it
available
on
the
internet,
which
I
have
not
done
yet
and.
B
G
What
was
the
change
around
the
filters
array
and
then
the
inner
filter.
J
B
G
G
B
B
M
B
B
D
B
D
The
only
thing
is
just
if
we
do
the
json
schema.
Basically,
a
filter
is
defined
by
a
dialect
and
all
the
property
depends
on
the
dialect
correct
like
because,
if
I
create
my
own
dialect,
like
let's
say
french
like
maybe
it's
not
gonna
be
type
property
and
value,
but
something
completely
different.
Correct.
D
D
Yeah,
if
it's
an
end,
that's
kind
of
yeah.
D
B
So
I
think
it
makes
sense
for
maybe
the
the
discovery
endpoint
metadata
to
say.
If
there's
a
limit
to
the
number
of
filters,
you
can
specify
per
subscription
right
that
way.
So
that
way
a
discovery,
endpoint
can
say,
hey
this.
This
is
this.
Subscription
manager
only
supports
one
filter
per
subscription
yeah
and
leave
it
to
the
implementation
yeah.
I
think
you're
right,
it's
better.
G
B
B
Here
wait:
where
was
it
I
added
some
wait
did
doing
a
different
pr.
I
thought
I
added
something,
so
someone
could
discover
the
list
of
dialects
hold
on
well,
maybe
I
put
in
the
same
pr
oh
yeah
here
I
create.
I
create
a
subscription
dialects,
entry
or
field
in
the
discovery
thing.
B
We
could
I
don't
care
about
the
name
that
much
I
was
just
trying
to
be
consistent,
but
yeah.
We
call
it
dialects.
D
B
D
D
The
spec
version,
also
there
is
one
thing,
is:
if
we
have
0.3
and
1.0.
What
does
that
mean?
It's?
When
you're
subscribed,
you
should
ask
which
format
you
want.
Yes,
part
of
the
subscription
yeah.
I
think
too
yeah.
D
D
B
Yeah
but
notice
there's
no
way
that
maybe
I
messed
up
but
there's
no
spec
version
in
there.
D
G
When
this,
when
the
subscription
service
makes
the
initial
post
it
should
be
asking,
you
know
what
respect
version
it
wants,
and
so,
if
it's
it
tries
to
send
version
one
and
that
doesn't
work.
It
might
fall
back
to
something
that
is
supported.
D
D
B
Okay:
okay,
we'll
talk,
we'll
talk!
You
guys
I'll
talk
to
you
guys
again
on
thursday
or
through
the
slack
channel.
L
Yes,
exactly
is
it
nicola
coutu.
N
F
O
We
have
a
pretty
small
community,
we
have
about
between
five
and
maybe
10
people,
typically
in
the
call,
but
we
just
changed
the
weekly
calls
as
well.
So,
okay.
L
F
L
L
C
L
L
L
Okay,
but
I
think
we
can
start
so
the
whole
call.
Let's
start
with
the
oh,
we
have
one
more
wow,
hello
karina.
I
think
you
were
first
no
she's
not
connected
yet
maybe
now
karina.
Can
you
hear
me.
B
Yes,
correct
tahumia
invited
me
to
the
meetings,
so
thank
you
for
having
me.
L
L
Group,
no
okay.
Now,
let's
get
to
our
first
topic,
so
we've
been
discussing
a
release
plan
for
quite
some
time
and
we
wanted
to
make
at
least
one
bump
in
the
release,
because
a
lot
has
happened
and
we
haven't
put
out
a
new
release
and
we
wanted
to
get
one
before
kubecon.
L
Now
we
already
wanted
to
freeze
the
current
version
and
work
on
bug
fixes
last
week,
but
I
think
we
we'll
have
to
get
to
it
now,
because
there
are
only
two
more
weeks
left
to
kubecon
and
we
initially
we
wanted
to
do
1.0,
but
a
lot
of
issues
have
come
up
and
there
is
a
little
bit
of
work
going
on.
L
L
We
really
just
want
to
signal
that
we
have
a
new
version,
so
I'm
opening
the
mic
for
suggestions.
P
So
is
the
question
just
which
version
which
number.
Q
So
something
between
0.1
and
less
than
1.0
yeah.
Okay,
I
I
mean
0.2
sounds
fine
to
me
the
signal
new
version,
but
I
also
get
the
the
part
about
showing
that
there's
been
a
lot
of
improvement
or
a
lot
of
new.
A
lot
of
change.
0.5
might
be
a
candidate.
L
L
So
tear
me
up:
would
you
be
okay
with
that
point
five?
Does
it
sound
good
yeah,
yeah.
O
If
everybody's
okay
with
that
definitely
and
I
can
then
start
creating
the
branch
and
and
and
once
we
go
through
the
prs,
we
can
the
ones
mentioned
here-
we
can
just
do
a
freeze
until
this
work
is
done
and
then
move
on
also
in
the
road
map
as
well.
L
Perfect:
okay
last
chance
for
objections.
L
Okay,
then
point
five:
it
is,
and
also
we've
been
postponing
a
demo
on
how
to
use
open
api
function.
Definitions
for
two
weeks
now
and
today
would
be
a
good
time
to
have
it.
Tell
me
how
long
should
we
schedule
for
that
is
that
15
minutes
so.
O
O
L
O
O
O
Alright,
you
guys
see
my
screen
somehow,
yes,
okay,
great
okay!
I
I
really
would
like
for
this
to
be
some
sort
of
interactive
type
of
talk.
I
don't
want
to
be
a
monologue
and
if
I
talk
too
much,
which
I
sometimes
tend
to
do,
please
stop
me
and
tell
me
that,
like
that
I
talked
too
much
but
anyways.
So
what
I
wanted
to
show
recently,
basically
for
people
that
are
new
here,
serverless
workflow
defines
and
I'll
show
this
language.
I
mean
the
slide
here.
O
What
we
show
when
we
define
serverless
workflow,
what
it
is.
We
really
define
a
declarative
and
a
domain-specific
language,
workflow
language
declarative
is
it's
not
represented
in
code
or,
if
else,
statements
or
low-level
code
blocks,
but
it
is
expressed
in
json-yama
format
and
domain-specific
language,
as
in
our
target
domain,
is
workflows,
orchestration
of
event-driven
distributed
services
and
the
reason
why
I
say
that
is
when
we
see
a
look
at
workflows
and
what
they
do
and
using
orchestrating
things
using
workflows.
O
We
really
have
to
understand
our
domain,
which
is
a
lot
of
times
governed
by
our
architecture
and
things
like
that
and
also
see
how
this
language
really
fits
to
translate
or
to
express
the
control
flow
logic
and
the
whole
workflow
language
in
that
particular
domain.
So
recently,
what
we
made
a
change
is
basically
introduce
that
we're
really
specification
in
standards
based
for
events.
O
We
define
them
using
the
cloud
event
specifications
and
we
also
made
a
recent
change
for
function,
definitions
or
the
definition
that
tell
the
runtime
implementations
how
to
execute
or
invoke
distributed
services
during
workflow
execution,
and
we
move
that
to
offload.
It
are
any
sort
of
possibility
to
find
some
custom
parameters,
use
some
language
that
is
not
really
appropriate
to
our
domain
or
really
be
carry
on
some
custom
definitions.
O
O
We
will
code
a
process
together
and
I
think
I'll
process
the
workflow
together,
and
I
thought
this
would
start
some
discussion,
material
and
also
kind
of
let
you
guys
see
some
things
about
the
workflow
other
than
just
looking
at
the
specification
and
reading
the
documents
and
staring
at
the
examples.
O
O
All
right
so
just
to
show
you
guys
this
thing
is
okay,
so
what
I'm
going
to
describe
to
you
guys
is
a
use
case
all
right,
so
the
use
case
that
we're
looking
at
is
in
this
particular
demo:
patient
onboarding,
for
example,
in
a
hospital
system,
so
you're
dealing
with
registering
a
new
patient
to
assist
and
assigning
doctor
to
a
patient
based
on
their
conditions
and
also
scheduling
appointment
for
that
particular
patient
with
a
doctor
that
was
assigned
to
it.
O
It's
a
very
small
uk
use
case,
of
course,
in
real
world
scenarios
you
would
have
a
lot
more
rules
and
and
and
the
business
logic
would
be
more
complex,
but
for
this
20
minutes.
This
is
good
enough.
Since
we
said
that
a
service
worker
is
really
a
domain
specific
language,
we
have
to
look
at
now.
What
is
the
architecture
of
our
applications
and
see
how
workflows
can
fit
into
actually
orchestrate
to
solve
the
business
problem
on
patient
or
onboarding?
O
So
in
this
slide,
you
will
see
that
in
the
application
that
I
will
show
you
that
will
start
soon
is
that
we
have
three
services
running
they
can
be
completely
distributed,
but
the
way
I
have
it,
I
have
a
lot
of
issues
with
internet,
so
I'm
writing
them
locally
right
now,
so
it
doesn't
really
matter.
We
have
three
patient
services
and
we
have
to
orchestrate
them
in
order
to
solve
our
business
problem
on
the
bottom.
O
You
will
see
that
in
a
lot
of
cases
we
have
different
triggers
or
applications
or
services
which
need
to
invoke
this
orchestration
process.
They
can
be
as
we'll
see
also
in
the
demo
web
uis,
or
they
can
be
some
particular
devices
they
might
be
used
in
a
hospital
other
web
uis,
where
you
enter
a
new
patient
information
to
trigger
onboarding.
O
The
way
we're
going
to
do
it
in
this
demo
is
we're
going
to
through
different
uis
or
different
devices,
push
cloud
events
to
a
message
broker
in
this
demo.
I
use
mqtt
mosquito,
but
you
can
use
kafka
whatever
the
heck.
You
want
to
really
do
now.
Our
workflow.
The
way
we
define
it
is
can
be
either
triggered
and
we
will
see
as
a
service.
O
So
it
has
a
restful
end
point,
but
we
really
want
to
be
defining
our
workflow
language
that
we're
going
to
listen
to
this
new
patient
cloud
event,
which
is
going
to
trigger
our
workflow
execution
and
then
orchestrate
the
services
that
we
have
available
in
our
system.
So
that's
kind
of
like
what
it
is
and
I'm
just
gonna
go.
I
don't
know
from
yet
I'm
gonna
go
ahead
and
just
start
my
application.
I
O
While
this
is
running,
I
have
this
on
a
branch,
we're
gonna
look
at
vs
code
now
in
vs
code
I
have
a
simple
maven
project
and
this
is
currently
what
we're
going
to
do
is
run
it
on
quarkus.
O
This
is
the
extension
that
we
provide
and
it's
in
our
github
repository,
and
it
gives
you
things
like
code
hints
code
snippets,
it
lets
you
generate
an
svg
diagram
for
both
json
or
yaml
formats,
and
things
like
that.
So
this
is
kind
of
a
must
to
have,
especially
if
you're,
looking
at
coding
in
vs
code.
So
let
me
see
if
this
is
completed,
real,
quick
yep.
So
now
I
can
probably
start
my
app
sorry
about
that.
I
wasn't
prepared
really
anyways.
This
should
just
take
a
sec.
O
O
The
end
point
of
our
patient
services,
slash
patients,
the
endpoint
of
our
doctor
services,
doctors
and
the
appointment
service
is
under
slash
appointment.
That's
the
end
points
of
this
particular
services.
I
don't
have
any
workflows,
I
don't
have
any
orchestration.
So
that's
what
we're
going
to
do
together
this
new
patient
event
service.
It's
just
a
little
service
that
from
web
ui
you
can
hit
it,
give
it
new
patient
information,
it's
going
to
create
a
cloud
event
and
push
it
onto
and
mqtt
so
anyway.
O
So
let's
go
back
to
our
jesus
again,
all
right
vs
code-
and
this
is
the
maven
project,
because
this
is
a
java
runtime.
If,
if
we
ever
end
up
having
runtimes
in
different
languages,
this
could
be
a
different
project
structure
but
under
source
main
resources.
O
We're
going
to
create
this
svg
real,
quick,
we're
going
to
create
a
new
workflow
and
let's
call
it
on
boarding
workflow
and
we're
going
to
use
json
now
and
let's
go
ahead
and
start
now,
when
you
start
using
this
in
vs
code
and
get
our
extension,
you'll
see,
you're
gonna
get
code
completions
right
and
it's
going
to
show
us
first,
the
top
level
parameters
that
we
can
use
for
our
workflow.
So
let's
give
our
workflow
unique
id.
O
Let's
call
it
onboarding,
we
can
give
it
a
name,
let's
say
onboarding
workflow,
and
at
this
point
we
can
start
doing
our
control
flow
logic.
So,
let's
take
a
look
at
that.
The
way
we
define
control
for
logic
and
serverless
vertical
language
is
basically
a
number
of
states.
Each
state
does
particular
control
flow
logic,
assignment
or
piece
that
it's
responsible
for
and
then
transitions
between
those
states.
So
let's
go
ahead
and
define
our
states
for
our
orchestration.
O
Let's
give
a
state
a
name,
so
we
have
let's
say,
let's
onboard
state
and
each
state
has
a
type.
Now
you
will
see
that
currently,
in
our
specification,
we
have
nine
different
types
and
each
one
again
irresponsible,
reduce
some
piece
of
control
for
logic
that
that
it's
assigned
to
do
since
in
our
onboarding
business
requirement,
we
have
to
wait
on
an
event
or
new
patient
event,
we're
going
to
use
an
event
state.
O
So
once
you
define
a
type,
the
extension
is
going
to
give
you
the
parameters
that
are
associated
with
that
particular
type,
so
you're
not
going
to
get
parameters
for
different
types
of
states.
So
in
our
case
we
are
looking
for
a
parameter
called
on
events.
This
parameter
really
means
that,
okay,
we
define
the
events
that
we
want
to
wait
for
and
then
the
actions
they're
going
to
be
executed
once
we
receive
this
particular
event.
O
So
in
this
case
we
have
an
event
traffic,
let's
call
it
new
patient
event
all
right
and
then
what
we
only
have
one.
Now
you
hear
you
can
define
multiple
you
can
define,
joins
and,
and
things
like
that,
whether
multiple
events
can
arrive
together.
If
you
need
more
than
one,
if
you
just
want
to
act
on
one,
the
actions
are
associated
with
singular
event,
and
this
is
what
the
case
is.
Then
we
define
actions.
O
The
actions
in
our
case
are
really
invocations
of
our
distributed
service
or
the
three
services
that
we
have
available
in
our
demo.
So
for
that,
let's
define
our
function
reference
and
we're
going
to
give
it
a
reference
name.
So
this
is
the
first,
so
the
first
service
that
we
want
to
invoke.
We
can
give
it
a
a
name-
let's
say,
add
new
patient
to
system,
and
if
you
see
so
far,
this
is
all
logical
names.
O
These
are
domain
specific
description
of
our
services
that
make
sense
to
your
domain
at
your
company
or
your
projects.
Are
you
using?
There
is
nothing
special
here
so
now
we
want
to.
I
have
two
more
and
since
for
onboarding,
I
have
to
first
add
a
patient
and
assign
a
doctor
and
then
schedule
the
next
appointment.
O
O
Patient
appointment-
and
this
is
really
it
with
one
single
state
where
we're
able
to
describe
all
of
the
control
for
logic,
we're
waiting
for
the
particular
new
patient
event.
If
we
want
to
execute
the
three
or
invoke
the
three
services
sequentially,
the
only
other
thing
we
have
defined
in
our
language
is:
we
have
to
tell
the
workflow
which
state
is
the
starting
state
in
which
state
is
the
ending
state
as
far
as
ending
workflow
execution.
So
we
just
since
in
this
case
we
only
have
one
state
oops
we
want
to.
O
There
are
different
ways
of
starting
workflows.
There's
a
scheduled
way
and
jurgy
knows
a
lot
about
that.
He
will
help
us
with
that,
but
in
this
case,
since
we're
waiting,
I
went,
we
just
have
a
default
start
and
on
the
bottom,
for
example,
we
can
define
that
this
state
also
ends
workflow
execution
and
again,
let
me
show
you
this
too.
O
If
you're
interested,
we
can
create
an
event
when
workflow
execution
ends,
we
can
terminate
all
the
threads
like
if
you
have
some
parallel
state
running
branches,
still
in
the
background
or
different
threads,
everything
will
be
killed
or
for
us
once
we
perform
the
three
actions
or
invocation
of
our
services.
We
just
want
to
end
the
workflow
execution
and
see
with
like
30
lines
of
yaml
code.
We've
defined
this
or
I
mean
json
code
and
yaml
will
be
less.
The
only
other
thing
now
is
that
we
do
have
to
find
the
control
flow
logic.
O
We
have
to
give
our
runtimes
a
little
bit
more
information
about
the
event
new
patient
event
and
about
the
services
that
we
want
to
invoke.
So
for
that
what
we
have
is
for
events.
We
have
an
events
array,
and
this
contains
our
event
definition
now
right
now
we're
defining
him
in
line,
but
the
language
itself
defines
also
that
this
can
be
a
string
type
where
you
can
offload.
You
can
define
your
events
and
and
function
definitions
and
separate
files
and
reference
them
here,
so
they
can
be
reused
between
multiple
workflows
right.
O
So
in
this
case,
what
we're
going
to
do
we're
going
to
give
our
one
event
a
name
now
this
has
to
match
the
declarative
or
the
domain
specific
name
here,
and
at
this
point
we
use
cloud
events,
context
attributes.
So
we
have
a
type
attribute
that
has
to
match
the
type
of
the
cloud
events
format
of
the
event
that
comes
in
so
let's
say
we
call
it
new
patient
events,
for
example
type,
and
we
also
want
to
have
a
source
parameter.
O
We
want
to
be
able
to
receive
events
from
multiple
sources,
so,
instead
of
defining
this
event
five
times
each
one
for
each
different
device
that
we
have
one
thing
that
we
can
actually
do
is
say
new
patient,
which
is
our
topic
for
our
message:
broker
that
will
receive
events,
and
we
can
just
put
a
plus
sign
here,
and
this
basically
means
that
we
want
all
the
events
on
all
their
message
broker
topics
that
let's
say
we
have
the
example
of
new
patient,
slash
web
new
patient
patient,
slash
device
x,
device
y.
O
All
of
them
is
actually
going
to
trigger
our
instance
of
our
workflow
execution.
So
that's
really
it
we
for
our
single
event.
This
last
thing
we
have
to
do
is
define
our
functions
or
the
functions
are
tell
the
runtime
a
little
bit
more
information
on
how
to
exit
actually
execute
the
three
services
that
we
want
to
invoke.
So
let's
go
ahead
and
define
our
first
function.
O
You
guys
stop
me
with
any
questions.
If
you
guys
have
any
questions,
don't
you
know
don't
I'll
go
off
otherwise
forever.
So
we
have
a
first
function
definition
and
we
talked
about
functions.
Being
a,
we
use
the
open
ia
api
definition,
so
we
have
an
operation
the
parameter
here
now.
If
I
go
back
to
my
web
page,
you
will
see
that
things
like
quarkus
and
micronaut
and
swagger,
and
things
like
that,
allow
us
to.
We
don't
have
to
hard
code,
the
open
api
definition.
O
Sorry,
I
have
to
move,
but
it
will
be
generated
for
us.
So
in
a
lot
of
these
new
types
of
architectures
and
and
things
like
that,
you
don't
have
to
deal
really
with
the
overhead
of
generating
this
open
api
stuff
yourself.
So
what
I
have
here
is,
I
also
have
the
same
thing
in
our
project,
but
in
json
format,
so
I
call
it
services.json.
O
So
what
we
want
to
do
is
an
operation
parameter.
Give
a
uri
in
this
case
it's
a
relative
path
to
our
open
api
definition.
So
it's
api,
services.json
and
then
what
we
want
to
do
is
give
it
a
unique
identifier
of
the
operation
of
this
service
that
we
want
to
invoke.
So
if
we
look
at
our
open
api
definition,
we
see
under
slash
patients,
which
is
the
first
service.
O
We
have
a
post
operation
here
that
we
want
to
invoke
and
its
operation
id
is
called,
add
patience,
so
we're
just
going
to
where's
my
workflow
all
right
here.
We
just
want
to
give
it
that,
and
that's
really
enough
information
for
the
runtime
to
know
exactly
what
needs
to
be
done
in
order
to
execute
this
particular
function.
So
the
only
other
thing
I'm
gonna
do
is
create
two
more
one
for
this
one
and
for
this
one
it's
assigned
doctor
to
patients.
So
it's
our
doctor
service.
We
look
at
the
post
method
assigned
doctor.
O
That's
that
and
our
third
one
is
our
scheduled
patient
appointment
service,
which
has
to
deal
with.
O
Where
is
our
appointments?
The
post
method
is
schedule,
appointments
all
right,
and
this
is
it.
This
is
our
workflow
definition.
There
is
nothing
more
to
it
now.
One
cool
thing
with
a
serverless
workflow
vs
code
plugin,
which
you
can
do
is
we
can
see
if
we
can
actually
visualize
this
particular
workflow
and
right
now
what
we
have
done
is
we
have
generated
an
svg
diagram
from
our
json
definition.
The
same
thing
can
be
generated
from
yaml
as
well,
and
this
looks
very
simple:
it
just
uses
a
state
uml
diagram.
O
We
can
see,
we
have
a
single
state
and
the
border
color
you're,
seeing
the
legend
it
matches
the
type
and
we
see
that
our
event
state
waits
for
a
single
event
called
new
patient
event,
all
right.
So
one
thing
I
have
to
do
now:
real,
quick,
I'm
sorry,
since
we
added
the
workflow,
I
have
to
just
restart
my
app
in
order
for
it
to
get
picked
up,
and
this
really
only
takes
a
couple
seconds.
Any
questions
so
far.
L
E
Yes,
I
have
a
question
you
apparently
associating
functions
to
to
the
different
steps.
I
understand
that
now.
Let's
say
that
I'm
I'm
trying
to
improve
my
my
workflow
and
I'm
as
a
result,
I'm
developing
a
new
function.
E
How
would
I
and
you
know,
obviously
the
function
is
already
deployed
and
possibly
running,
and
but
I
would
like
to
test
my
functions
so
what?
What
would
be
the
approach
to
do
that?
Do
I
need
to
yeah.
O
Well,
there
could
be,
in
my
opinion,
multiple
approaches
you
could
have.
Workflows
are
developed
just
like
services,
and
I
was
going
to
show
them
as
well.
Workflows
also
have
a
version
parameter,
which
I
don't
have
here.
You
can
version
your
processes
test,
different
ones
and
the
cool
thing
about
workflows
or
right
now
is
they're
not
separate
as
as
your
code.
So,
just
like
you
would
test
out
your
different
version
of
a
microservice
that
you
deploy
in
go
or
python
or
whatever
the
workflows
are
really
the
same.
O
The
world
of
this
monolith,
type
of
workflow
deployments
where
you
click
a
button,
and
I
don't
know
what
happens-
is
over
and
I
was
going
to
show
you
guys
actually
that
right
now
I
redeployed
the
application,
and
if
we
look
at
the
swagger
ui
right
now,
you
will
see
we
also
have
an
onboarding
service.
And
if
you
look
at
our
workflow
definition,
this
is
the
unique
id
of
our
workflow.
O
So
with
this
modern
type
of
workflow
orchestration,
is
you
really
write
your
workflows
within
domain
specific
language
rather
than
code,
but
you
deploy
them
just
like
any
microservice
that
anybody
on
your
team
would
write
and
deploy
so
your
workload
itself,
even
though
they
define
some
sort
of
a
part
of
a
solution
to
a
business
problem,
or
it
really
then
can
be
deployed
as
services
and
be
used
by
other
parts
of
your
teams,
then,
let's
say
have
onboarding
is
just
a
part
of
their
business
requirements.
O
Just
like
another
service
that
you
have
deployed
in
your
system,
and
I
think
that
is
really
kind
of
like
a
very
important
feature
right
now,
workflows
that
there
is
really
no
separation
between
what
we
call
a
micro
service,
written,
let's
say
in
code
and
deployed
on
a
container
or
a
cloud
platform,
or
you
know
workflow
at
the
end.
You
really
don't
know
right.
E
Okay,
let
me
a
little
bit
more
specific
understand
what
you're
saying
and
that
makes
sense.
For
example,
there
is
a
concept
of
a
b
testing
when
you
deploy
some
new
version
of
the
new
containers
right.
So
the
way
this
is
done,
I
mean,
after
you
need
to
play
with
the
routing
of
the
queries,
possibly
here
writing
of
events.
Again,
I
don't
know
exactly
how
that
will
be
done.
E
Essentially,
I
would
want
to
do
some
a
b
testing
and
I
would
say
only
my
requests
are
my
events,
so
I
don't
know
how
to
do
that
either.
Maybe
I
have
to
create
a
different
ui.
I
don't
know
only
my
request
should
go
to
this
particular
workflow
and
the
people
that
are
currently
using
my
infrastructure.
E
They
still,
they
still
should
be
using
the
workflow
that
that
is
in
place
now
right,
but
only
for
the
new
workflow
that
I'm
trying
to
develop
myself
because
I'm
the
developers
I
want
the
the
routing
to
be
slightly
different.
Is
this
something
that
you
can
address
at
your
level?
It
can
be
addressed,
possibly
at
you
know
at
other
levels,
but
definitely.
O
One
way
that
we're
addressing
this
in
this
particular
java
based
runtime,
is
via
versions.
So,
if
you,
if
I
added
a
version
here,
oops
sorry,
I'm
typing
standing
up
right
now:
conversion
oops
and
you
can
write-
let's
say
1.0
this
will
be
deployed
under
the
endpoint,
would
result
in
one
one
underscore
o
slash
on
boarding,
so
you
can
have
multiple
versions
of
your
workflow
running
it.
O
Also
you
can
switch
out
for
the
language
definition,
the
function
and
event
definitions,
so
you
can
keep
your
control
flow
logic
the
same,
but
here
instead
of
having
events,
one
thing
you
can
do
is
say
events
and
you
can
actually
say
source
main
resources,
abc.json
or
yaml.
So
you
can
even
switch
those
out.
One
can
be
the
events
for
your
deployment
system
production.
O
What
some
can
be
also
for
your
development
or
testing
environments,
and,
of
course,
we
are
looking
for
contributions
in
this
area
as
well,
because
you
seem
to
be
an
expert,
I
think
it
would
be
really
nice
if
you
can
look
at
what
we
have
and
see
what
kind
of
improvements
we
can
make
on
the
language
level
to
make
it
easier
for
users
to
do
exactly
what
you're
describing
it
does
that
make
sense
yeah
but
anyways
any
other
questions.
M
Quick,
this
is
molly
here,
so
you
said
what
is
the
request
and
responses
for
this
this
election,
he
understood
like
implicitly
not.
He
was
specific,
explicitly.
O
Yeah
yeah,
that's
a
good
question,
and-
and
this
is
one
cool
thing
about
serverless
workflow-
is
that
you
don't
really
have
to.
If
you
see
in
my
function,
definitions
and
also
my
event
definition
here,
I
don't
really
have
any
parameters
defined
right
and
this
is
because
by
default
each
state
holds
its
data.
So
what
happens?
Actually
here
is
when
we
receive
the
new
patient
event.
O
If
you
execute
functions,
you
pass
the
entire
state
data
and
this
is
what
our
workflow
is
actually
doing.
However,
when
you
have
a
function
ref,
you
can
define
parameters
explicitly
so
here,
if
your
function-
let's
say
you
know
from
your
open
api
definition
takes
in
two
or
three
or
five
parameters.
You
can.
Let's
say
we.
Could
you
also
define
it
like
this
right
and
then
you
can
give
an
expression
which
is
a
json
path?
Expression.
O
The
query
is
your
state
data
or
in
this
case
the
payload
of
the
new
patient
event,
which
became
the
state
data
and,
I
can
just
say,
for
example,
dollar
sign
dash
patient,
so
you
can
use
expressions
to
find
define
parameters
as
well.
So
what
happens
after
each
action
execution?
O
The
results
of
this
execution
of
a
service
will
be
then
merged
with
the
state
data
and
then
the
next
function
execution
is
going
to
either
receive
the
entire
state
data
as
as
as
payload
or
it
will.
You
can
again
define
your
parameters
yourself,
but
because
the
for
this
demo,
each
service
that
I've
defined
can
just
take
the
entire
state
data
as
it
comes
from
from
the
new
patient
event,
I
don't
have
to
define
anything
so
yeah
yeah.
Does
that
help.
O
That's
a
good
question,
so
just
just
to
end
this
demo,
I'm
sorry,
I'm
probably
taking
way
too
long.
Now,
let's
actually
see
if
we
can
run
this
demo
here
I
have
a
very
simple
ui.
It
just
has
a
form.
It's
where
you
enter
in.
Let's
say
somebody
working
at
a
hospital
in
your
patient.
We
can
say
his
name
is,
let's
say
michael,
and
this
guy
unfortunately
has
breathing
problems.
Now,
when
I
click
on
here,
we're
going
to
hit
create
a
cloud
event.
O
The
cloud
event
is
going
to
be
set
on
our
new
patient,
slash
from
web
topic
mqtt,
and
it's
going
to
trigger
workflow
instance,
and
let's
see
if
this
actually
works
whoops.
Why
did
I
get
two?
I
don't
know
right
now,
but
it
doesn't
matter
so
we'll
see
we
on
board
and
michael.
He
has
breeding
problems.
I
think
I
clicked
it
twice
sorry,
and
so
this
is
our
first
execution
of
our
first
service
or
patient
service.
We
our
workload,
the
store,
the
patient
or
system
this
guy,
this,
oh,
the
appointment
service,
didn't
really
work.
O
A
A
A
is
that
correct,
which
one
yeah
the
line
line
43
a
signed
doctor,
but
the
operation
is
a
patient.
Is
that
right.
O
F
Yeah
the
functions
and
the
operations
are
mixed
up.
I
think
which
line
that
should
be
a
sign
doctor
and
line
48.
Oh.
O
O
Right
now,
no,
but
you
can
for
the
simple
demo
and
just
have
in
memory.
Okay
in
memory,
I
have
an
application
scope
class
that
stores
all
this
stuff
in
there.
So
yeah
just
a
demo.
So
let's
go
ahead
and
do
this
again.
O
So,
let's
michael
and
he
is
breathing
problems
woohoo
there
we
go
so
we
successfully
executed
our
three
services
in
sequential
order,
as
per
our
workflow
control
flow
logic,
and
the
only
last
thing
I
want
to
show
is
the
other
devices.
So
here
I
have
a
mosquito
I'm
going
to
publish
directly
to
mosquito
topic
new
patients
from
client,
and
we
have
a
patient
of
name,
new
patient
from
client
to
make
sure
it
comes
from
here
and
here's
the
condition
of
irregular
heartbeat.
O
F
O
L
L
About
the
so,
you
copied
this
swagger
ui
into
your
local
pass
and
you're
referring
to
that
file
locally,
but
typically
the
open
api
spec
would
be
hosted
right,
yeah
yeah.
So
when
you
have
subsystems
exposing
api
functions,
how?
How
typically
is
it
to
have
this
rebecca
ui
definition
with
with
a
hosted
service?
You
mention
what
do
you?
What
are
you
using
to
generate
that
information
internally.
O
Okay,
sure,
so
what
I
showed
you
guys
earlier,
we
have
the
new
kind
of
like
things
like
quarkus
and
spring
boot,
and
things
like
that
once
you
deploy
your
services,
a
lot
of
these
things
generate
the
swagger
definition
or
the
open
api
definition
for
you.
So
not
only
can
you
generate
you,
the
open
api
or
the
swagger
ui,
so
you
can
visually
see.
What's
going
on,
you
can
also
hit
an
end
point
called
open
api
and
you
see
it
just
downloaded
a
file
for
me,
and
here
is
it
is
so.
O
This
is
the
same
thing
that
I
have
locally
in
my
project,
but
this
is
a
yamo,
so
in
my
workflow
I
could
have.
O
L
Yeah,
I
think
that
was
also
the
the
reason
why
we
wanted
to
also
have
this
demo
right.
You
should
motivate
that
the
use
of
open
api
is
not
that
difficult.
L
O
Yeah
open
api
has
a
bunch
of
different
tools
for
many
different
languages,
since
I
have
this
java
project,
I'm
just
using
the
built-in
stuff
that
quarkus
has
for
me,
I'm
not
adding
anything
special,
so
I'm
just
using
the
quarkus
open
api
extensions
and
basically
everything
built
in
spring
boot
really
has
the
same
stuff
and
I'm
sure,
if
you're,
not
even
in
the
java
space
but
you're,
using
like
a
node.js
or
or
or
go
or
whatever
open
api
has
a
lot
of
stuff.
O
For
that,
too,
I'm
not
familiar
with
the
tools
and
everything
on
every
language,
but
I've
kind
of
like
been
around
like
java
for
too
long
to
to
to
do
a
demo
in
something
else.
At
this
point.
L
Okay,
cool
thanks
so
much
for
the
demo.
Are
there
any
other
questions.
E
Yeah,
I
just
have
one
question
which
maybe
is
beyond
what
you
presented
but,
for
example,
for
monitoring
the
the
workflow,
the
workflow
engine.
Right,
for
example,
I
want
to
know
where
my
events
are
in
which
they
are,
and
I've
possibly
have
some
matrix
about.
You
know
how
much
time
it
takes
to
go
from
state
one
to
step
two
to
state
three.
O
If
you
go
to
our
github
repository
and
go
to
the
specification
project,
you
will
see
a
directory
called
extensions,
and
the
idea
is:
is
that
the
way
we
want
to
define
those
is
as
extensions
to
the
to
the
to
the
language
itself,
and
currently
you
will
find
an
extension
called
kpi
key
performance
indicators
where
you
can
enhance
your
workflow
information
with
information
about
expected
versus
actual
runtime
results,
such
as
cost
and
performance
and
times,
and
things
like
that.
O
We
are
also
working
on
tracing
extension.
Currently,
so
you
know
we're
very
dependent
on
the
community,
you
know
so
any
help
on
any
of
that
would
be
huge.
You
know
from
you
guys
if
you
want
to
get
involved,
just
ping
us
on
on
on
the
slack
channel,
and
I
would
love
to
work
with
anybody.
E
When
you
mean
tracing
you
mean
tracing,
you
know
like
jager
type
of
tracing
or
are
you
talking.
K
E
Okay,
okay,
because
here
we
are
talking
about
events
right
monitoring
events,
I
mean
that's
what
that
that
was
what
my
question
was
about.
Tracing
is
one
problem
in
itself
and
some
people
just
solved
it,
but
maybe
you
know
there's
still
a
lot
of
work
to
be
done.
I
agree
with
that
here.
I'm
talking
about.
I
want
to
have
visualization
of
my
events
and
see
you
know
what's
happening
in
my
workflow,
specifically
on
the
workflow
right.
O
Yeah,
but
I
mean
I'm
sure
that
if
we
define
an
extension,
that
is,
that
is
very
kind
of
like
defines
a
general
structure
of
of
defining
like
what
you
want
we're
looking
for
and
what
your
expected
values
are.
I
assume
that
you
can
use
it
with
with
the
with
the
services
that
you
have
available,
let's
say
on
kubernetes
or
your
or
your
cloud
platforms
that
actually
allow
you
to
to
to
obtain
this
information
during
runtime
and
and
we're
basically
trying
to
work
with
them
as
well.
O
L
Thanks
again
to
me,
I'm
sorry
in
the
interest
of
time
I'd
like
to
move
on.
If
there
are
any
more
questions,
please
just
contact,
hear
me
on
the
slack
channel
or
open
an
issue
if
it's
for
the
spec
and
so
on.
Okay,
let
me
share
my
screen
and
get
to
the
pr.
So
we
have
two
very
easy
pr's.
I
believe
one
is
fixing
an
image
where
the
output
of
the
let
me
show
it.
L
Sorry,
I
think
the
output
of
a
workflow
example
was
listing
a
single
layer,
a
single
value
in
a
single
map
instead
of
an
array
of
maps,
because
I
think
the
input
was
three.
Is
it
yeah?
L
So
approved
and
the
next
one
is
an
ambiguous,
json
pass
example,
and
let
me
check
so
this
one
was
doing
an
evaluation
to,
I
think,
derive
the
is
adult
property
and
then
do
a
transition
based
on
that.
L
So,
instead
of
this,
it
is
changing
to
the
condition
that
is
correctly
selecting
elements
and
then,
when
that
good
condition
is
not
null,
so
anything
would
render
the
as
a
result
of
this
query
would
render
the
condition
true
transition
is
fired
as
better
than
this
one
and
yeah
okay.
L
I
hope
everybody
had
enough
time
to
review
it.
It
was
on
for
a
while
any
objections
to
merging
this.
L
Also
approved
the
third
one
is
a
little
bit
yeah,
so
I
would
have
had
a
question
to
lucas
who
is
not
on
the
call
today.
This
is
about
the
conditions
at
the
end
of
a
state,
the
transitions
and
the
conditions
for
it.
Oh,
which
one
was
it.
Do
you
mean?
Was
it
the
switch
state
or
was
it
conditions.
O
O
Or
event
based
conditions,
so
the
the
issue
that
he
was
fixed
here
was
that
we
didn't
have
in
our
language
and
ability
to
define
what
to
do
or
which
transition
or
which
condition
to
take
on
a
switch
or,
if
you
want
to
think
a
gateway.
O
When
there's
two
conditions
that
evaluate
to
true
two
or
more
so
what
we
added
is
two
ways
number
one
is
the
order
based
decision.
So
if
you
just
have
a
number
of
conditions
in
order,
the
the
priority
would
be
the
aligned
with
the
ordering
of
the
way
you
define
the
conditions,
and
we
also
added
the
ability
here
via
priority,
parameter
to
declaratively
define
a
priority
specific.
O
This
same
thing
like
what
bpmn
is
doing
really,
but
to
define
a
declarative
order
on
each
condition
in
order
to
to
to
define
what
to
do
in
cases
when
there
is
multiple
conditions
that
are.
L
So
my
argument
last
week
was
that
we
use
order
in
many
points
in
specification.
For
example,
the
actions
list
is
an
ordered
list
and
this
would
not
only
apply
to
the
switched
state,
I
believe,
but
also
than
to
transitions,
and
I
I
can't
really
find
the
use
case,
because,
if
we
use
priority,
numbers
we'd
also
have
to
clarify
what
happens
if
I
have
the
same
priority
assigned
to
two
transitions
and
they
both
fire.
L
This
again
would
resolve
to
order.
So
I'm
not
sure
why
we
would
want
priority
to
begin
with,
but
I'll
ask
that
to
luca
and.
L
Okay,
then
maybe
we
can
cover
one
or
two
issues,
especially
those
two.
They
are
both
all
the
125
and
135,
because
I
think
they're
both
going
in
the
same
direction.
So
the
first
one
is
from
tme
to
update
the
error.
Handling
section,
I
think
error
handling
includes
also
what
happens
if
call
failed
and
whether
this
has
to
be
retried
like
a
function.
L
Call
I
meant
like
an
action,
and
there
was
also
a
suggestion
to
move
this.
The
retry
definition,
which
is
currently
described
in
as
part
of
the
event
state
to
a
general
section
on
re-twice,
and
I
think
both
are
targeting
more
or
less
the
same.
That
is
tidying
up.
The
error,
handling
and
introducing
a
new
section
void.
Is
that
correct,
you're
going
to
me.
O
Yeah
and
it's
my
fault-
I've
been
on
this
for
too
long
and
I'll
try
to
get
it
this
week
done
before
we
cut
the
release,
but
yeah
jurgen
has
added
a
bunch
of
cool
information
and
and
input
to
this
and
and
the
retry
section
right
now,
it's
it's
kind
of
like
exactly
the
same
as
what,
for
example,
aws
provides.
There
is
no
more
or
less
that
we
do
at
this
point,
but
with
jurgen's
input
it
has
to
change.
O
O
O
Yeah,
I
think
the
pr
will
be
so
big
that
it
might
take
weeks
for
us
to
make
a
decision
on
it,
but
I
think
0.5
could
be
going
out
with
what
we
have
currently,
and
this
will
be
a
change
for
maybe
the
next
either
one
o
or
whatever
we
decide.
The
next
release
would
be
just
my
opinion,
but
again
whatever
we
just
because.
L
Another
thing:
are
they
retries,
so
maximum
attempts
interval
attributes
and
the
exponential
back
off,
which
I
believe
are
very
good
suggestions,
and
we
just
need
to
work
on
pr's
for
that.
But
it
would
be
good
to
branch
out.
Do
the
reordering
first
and
then
add
it
to
a
changed
version
of
the
spec
description.
F
I
just
think
it's
confusing
where
it's
at
so
I
don't
know
if
that
should
be
a
required
require
something
required
to
fix
before
we
cut
a
release,
whereas
I
I
feel
like
the
retries
for
max
attempts
and
exponential
back
off.
Those
are
something
that
would
be
nice
to
be
in.
If,
if
we
were
picking
stuff
to
go
into
the
into
the
next
cut
or
not.
L
But
we
also
added
quickly
these
the
the
jitter
to
intervals
right.
So
I
think
introducing
those
max
attempts
and
interval
attributes
would
also
be
an
easy
pr
right.
L
I
just
don't
want
people
to
start
work
and
then
get
conflicting
changes
that
have
to
be
sorted
out
in
lengthy
sessions,
so
I
just
want
to
make
sure
if
we
maybe
want
to
reorganize
to
me
it
sounded
as
if
the
the
retry
definition
in
the
event
state
really
just
has
to
be
moved
to
a
workflow
error
handling
section
so
to
have
it
as
a
general
section
and
then
later
we
can
work
on
other
error
handling.
L
But
let
me
see
if
I
let's
take
this
offline
and
we
definitely
do
the
0.5
branch
and
freeze
and
because
this
also
it's
just
reorganization
in
my
opinion,
so
it's
really
sort
of
a
bug
fixing
for
understanding,
so
people
can
readability
right
and
then
the
retries
maxitam's
interlight
will
be
the
exponential
bank
of
would-be
additional
features.
O
Manuel
I
just
before
we
end
I
just
wanted
to
since
karina
is
still
here.
I
just
wanted
to
kind
of
introduce
you
guys.
Karina
is
from
red
hat
and,
and
one
thing
that
we
really
need
is
like
a
lot
of
help
on
the
community
side
of
things
for
a
project
and
she's.
Like
a
pro
on
that,
so
I
would
like
to
just
say.
O
Know
you
are,
and
just
a
little
you
know
if
we
have
ideas
and
I'm
sure
karina
will
have
how
to
improve
just
the
overall
community
section
and
how
we
we
interact
with
with
the
community
try
to
get
more
exposure.
She
can
help
us
there
a
lot
so
just
letting
you
guys
know.
B
L
That's
awesome.
Welcome
aboard
it's
great
to
have
you,
okay,
and
I
think,
for
the
remaining
uniqueness
constraint
is
also
something
that
we
have
targeted
with
the
correlation
token.
But
you
made
some
good
points
here
and
the
action
and
events
we
have.
We
had
an
outcome
that
we
would
want
two
separate
prs
out
of
this
right
and
then
the
research
to
add
support
to
jsonpatch
schema
is
something
that
ricardo
who
is
not
with
today
is
working
on.
So
this
is
definitely
ongoing,
and
this
completes
my
list
sorry
to
rush
through
these.
L
Let's
definitely
follow
up
on
this
and
we're
out
of
time
anyways
any
other
business.
Anything
pressing.
L
No
okay
and
then
let
me
do
a
final
roll
call
for
the
late
commerce
emmanuel.
Do
you
want
to
be
associated
with
any
company.
L
Okay,
great
welcome
and
david.
Can
you
hear
me
now.
J
L
J
Yeah
chegg
c-h-e-g-g.