►
From YouTube: AsyncAPI SIG meeting 30 (September 1, 2020)
Description
This is the recording for the AsyncAPI Special Interest Group (SIG) meeting #30.
Attendees:
- Lorna Mitchell
- Paul Taylor
Moderation:
- Fran Mendez
Agenda & Notes:
https://github.com/asyncapi/asyncapi/issues/430
A
Great
great
great,
so
well,
thanks
for
for
being
here
today,
by
the
way
and
and
for
those
watching
the
recording.
This
is
lorna
and
paul
and-
and
we're
gonna
be
chatting
here
today
about
stupid
things.
A
As
always,
like
you
know,
and
and
now
I'm
just
kidding,
we're
we're
gonna
be
be
going
through
the
the
agenda
and
the
agenda
contains
roughly,
as
always,
the
questions
and
answers
and
generating
html
the
html
template
from
the
react
component
to
remove,
duplicates
and
also
natively
support
envelopes
like
cloud
events
and
similar
right,
so
so
yeah.
I
have
to
ask
any
of
you
want
to
raise
some
question
before
we
jump
into
the
topics
or.
A
Cool,
so
let
me
okay,
let
me
share
my
screen.
A
A
A
I'm
sorry
if
I'm
a
little
bit
slow
but
it's
morning
here
so
and
it's
spain,
so
it's
really
early
for
me
in
the
day,
you
know
10
a.m.
For
me,
it's
really
early,
given
that
I
go
to
bed
at
the
2
a.m.
3
3am.
A
You
sometime
have
sister,
I
wish
every
day
so
yeah
cool,
so
I
was
so
what
what
I'm
talking
about
here,
just
let's
start
by
the
example,
because
I
think
it's
going
to
be
easier
to
understand.
So
in
a
little
bit
with
a
little
bit
of
context.
What
happens
here
is
some
people.
Many
people
actually
are
using
kafka
with
avro
and
well.
A
You
can
see
the
setup
of
java
kafka
or
java
or
any
java
language
jvm
language
anyway,
kafka
and
an
avro
seems
to
be
a
good
combination
or
a
common
combination,
at
least
and
more
and
more
I'm
seeing
the
use
of
kafka,
avro
and
cloud
events
or
people
wants
to
start
using
cloud.
Events
with
apra.
A
A
That's
fine,
but
then
people
are
using
cloud
events
which
is
probably
not
defined
with
avro,
it's
defined
with
json
schema
or
any
other
language
right
and,
and
what
happens
is
that
there
needs
to
be
a
way
for
people
to
to
to
signal
their
that
they
want
to
use
the
the
content
of
the
message.
The
content
that
you
are
actually
interested
in
is
avro
is
defined
with
avro,
but
the
envelope
it's
probably
defined,
with
something
else
like
in
this
case.
A
A
They
define
the
their
messages
already
containing
the
information
of
cloud
events,
all
the
fields
that
cloud
events
provide
you.
So
that
means
that,
on
every
message
you
have
to
be
defining
the
same
fields
over
and
over,
because
yeah
that's
the
only
way
you
have,
for
instance,
to
have
kafka
validate
this
for
you
right.
So
kafka
automatically
allows
you
to
validate
fields
the
messages,
if
you
define
them
with
afro,
and
that's
mainly
the
the
only
way
to
do
it.
A
A
So,
on
your
schema
register,
you
define
on
every
message
the
cloud
event
envelope
and
that's
not.
I
mean
that's
doable,
of
course,
but
it's
far
from
ideal,
because
tomorrow
you
want
to
change
the
the
version
of
the
of
the
cloud
events
envelope
or
any
other
field,
and
you
have
to
go
one
by
one
on
the
schema
registry,
replacing
all
of
them,
because
your
message
actually
contains
some
extra
information
that
shouldn't
be
there.
A
It's
tools,
information,
if
you
want,
so
it's
not
really
your
business
information
so
so
yeah.
So
I
was
wondering
if
there
could
be
a
better
way
to
do
this,
that
we
can
signal
from
async
api
that
this
is
your
message:
it's
avro
and
if
you're,
using
the
code,
generators
or
documentation
generator.
A
You
have
to
be
aware
that
this
is
going
to
be
grabbed
with
the
cloud
events
envelope,
and
this
is
how
the
cloud
events
envelope
looks
like
right,
and
this
is
these
are
the
fields
that
you
can
inspect
and
although
all
the
rules
that
you
can
apply
using
json
schema
or
any
other
schema
language,
so
so
yeah.
So,
for
instance,
here
I
have
an
example
of
a
test
channel
with
a
message
which
schema
format
is
like.
I
said
it's
avro,
so
we
jump
from
here
to
here,
and
you
see
that
the
payload
is.
A
A
Please
don't
take
into
account
the
format,
because
this
is,
I
don't
know-
maybe
it's
usable
like
it
is,
but
we
have
to
give
it
a
thought.
This
is
just
an
example-
and
I
was
playing
with
something
like
this
like
saying
that
the
envelope
of
the
message
of
the
payload
actually
is
of
the
format
cloud
events
and
and
the
schema
that,
for
instance,
if
you
say
that
it's
cloud
events,
we
already
know
the
schema
of
cloud
events.
A
We
don't
need
to
define
the
schema
right,
but
you
might
want
to
still
enforce
additional
rules
to
the
schema
like,
for
instance,
I'm
saying
here
like
the
spec
version,
which
is
a
field
of
cloud
events
needs
to
be
one
one
point:
zero
or
one
point
one
one
point
one
doesn't
exist
yet,
but
as
an
example
again,
we
might
want
to
enforce
that
people
have
to
use
either
1.0
or
1.1,
or
that
we
want
to
define
any
other
custom
fields
that
are
not
defined
on
on
cloud
events,
and
this
is
also
possible.
A
C
No,
no
it
it
makes
sense
to
me.
So
I've
seen
a
lot
of
interesting
in
cloud
events
from
the
customers
I
work
with,
because
traditionally
they've
done
this,
you
know
in
a
bespoke
way
everyone's
done
it
differently.
Everyone
needs,
you
know
some
kind
of
tracing
information
or
source
and
target,
and
we
put
it
in
the
headers
and
we
reinvent
the
wheel
every
time
we
do
this
integration.
C
A
A
The
protocol
headers,
like
you
know,
in
the
case
of
mqtt's
quality
of
service
in
the
case
of
http,
can
be
content
type
or
you
know
it's
not
meant
to
be
this
kind
of
headers,
but
it's
meant
to
be
metadata
or
headers
for
for
your
application
logic,
business
logic
right,
so
some
people
were
saying
like
I
want
to
add
extra
information
to
my
messages
like
meta
information,
to
my
messages.
A
So
I
was
saying
that
if
it's
meta
information
about
your
message,
you
should
probably
put
it
on
the
on
the
headers
right,
not
on
the
on
the
payload
but
yeah.
That's
not
always
possible,
like,
depending
on
the
protocol
like
websockets,
for
instance,
you
lack
headers,
so
you
have
to
put
everything
on
the
on
the
on
the
payload
and
and
yeah.
So
that's
a
just
an
example
of
of
why
I'm
trying
to
to
accommodate
this
type
of
metadata.
A
If
you
want
in
the
form
of
envelope
right
also
because
it's
pretty
common,
like
like
you
said
like
more
and
more
people
are
interested
in
cloud
events
anyway,.
C
I
was
gonna
say
just
one
point
on
that
note,
so
my
understanding
of
cloud
events
is,
it
depends
on
the
protocol
as
to
how
it's
supported
so
http
would
be
different
from
kafka
or
whatever
right,
so
you
can
have
that
structured
or
binary.
I
think
they're
called
is,
is
the
two
different
types,
so
how
using
this
example,
would
you
would
you
specify
that?
Because,
as
you
say,
maybe
it
shouldn't
live
in
an
extension
which
would
seem
the
natural
point
if
it's
different
for
protocol?
C
C
A
There's
this
thing
about
protocol
bindings
on
on
cloud
events,
which
is
confusing
because
it's
same
name
as
that
we
have
on
the
on
amazing
kpi,
but
different
concept,
so
yeah.
So,
for
instance,
one
of
the
things
one
of
the
things
they
they
suggest
is
that
if
you,
if
you're
gonna,
use
kafka
with
cloud
events,
you
can
do
it
in
two
in
two
ways
you
put
it
on
the
headers.
So
all
these
cloud
events
fields
are
on
the
headers.
You
can
see
my
screen
right
and
I'm
on
the
yeah.
A
So
this
will
be
on
the
headers,
and
in
this
case
you
can
go
to
to
async
api
and
define
the
headers
of
the
message
like
this
to
contain
this
right.
This
information,
and
in
the
case
of
you,
want
to
have
this
information
on
the
payload
like
in
this
case.
A
That's
where
this
envelope
information
applies
right,
like
I
want
to
have
an
envelope
on
the
payload
this
envelope
proposal
that
I'm
doing
that's
what
it
applies
like
in
the
case
of
you
want
to
have
cloud
events
with
kafka
and
using
it
on
the
payload.
A
A
Of
actually
all
of
the
protocols
that
even
those
that
cloud
events
didn't
think
of
like
it
will
be
generic
enough,
like,
for
instance,
in
this
game.
In
this
case,
I'm
I'm
meaning
kafka,
but
it
I
don't
know
if
let
me
check
I'm
sure
they
have
websockets
but
anyway,
in
any
case,
if,
if
cloud
events
doesn't
have
any
bindings
for
websockets
or
for
any
other
protocol,
what's
clear
is
that
these
informations
will
either
be
on
the
whatever
this
protocol
called
headers.
A
So
that's
why
I'm
trying
to
take
this
like
very
ec
nox
agnostic
of
cloud
events,
if
you
want-
and
this
envelope
is
actually
is
an
envelope
of
the
payload
right
yeah
in
indepen,
independently
of
this
being
cloud
events
or
not.
That's
why
I'm
I'm
signaling
here
that
this
is
cloud
events,
but
it
can
be.
This
is
an
optional
field,
as
I
say
here
can
be
optional
right
and
you
remove
format
and
just
specify
schema,
and
this
can
be
your
in-house
envelope
format
that
you
build
right.
A
C
I
guess
needing
to
ensure
that
it's
aligned
to
the
cloud
event
standard
in
that
they
say
that
in
some
instances
you
have
to
support
both
headers
and
and
but
you
know
and
envelope,
of
course,
that's
just
a
validation
issue
rather
than
anything
anything
major.
C
C
Http
as
an
example,
they
say
that
you
have
to
support
headers
envelope
and
it
can
be
both
on
the
same
message.
That's
valid.
So
you
know
if
you
want
to
duplicate
data,
that's
a
valid
cloud
event
message
which
of
course,
is
kind
of
a
special
case,
because
you're
going
to
get
other
protocols
which
I'm
going
to
have
headers
and
as
you.
A
Know
so,
having
a
way
like,
for
instance,
having
cloud
events,
information
or
telling
on
lansing
kpi
that
the
cloud
events
information
should
go
into
headers,
which
will
go
into
payload
and
how
to
validate
it.
A
Will
be
that
would
be
interesting
because
yeah
the
thing
is
that
in
in
the
in
the
case
of
in
the
case
of
headers,
this
is
going
to
be
an
overlap
with
headers
right
with
headers
filled
on
the
sync
api.
A
So,
and
that
will
be
like
a
merge
between
this
schema
and
the
and
the
header,
schema
and
merging
schemas
is
a
known
source
of
problems
like
this
has
been
discussed
for
many
years
on.
The
json
schema
community
that
merging
two
schemas
is
not
possible.
Let's
say
like
you
cannot
guarantee
that.
A
Thing
is
that
jason
schema
is
not
the
type
definition.
Language
is
a
like.
I'm
not
sure
if
that
that
was
the
word,
but
if
it's
in
the
search
assertion
language
sounds
like
this
or
constrained
language
constraint,
definition
language,
so
it
doesn't
mean
that
you're
defining
the
type
of
information.
You
are
just
defining
constraints
that
should
apply
to
this
information
and
therefore
you
can,
if
you
try
to
merge,
you
can
end
up
with
contradictory
information,
contradictory
constraints.
A
So
if
we
try
to
merge
this
with
the
headers,
this
information
with
the
headers,
that
would
be
a
problem
right.
C
I'm
gonna
have
to
drop
off
in
a
minute,
but
just
just
one
other
thing,
that's
gonna
be
interesting
is
of
course
cloud.
Events
also
supports
extensions
yeah.
Just
this
yeah
and
I
mean
there's
some
good
stuff
in
there,
which
really
applies
to
async
as
well.
I
think
you
know
like
in
the
iot
world
where
they
they
actually
allow.
C
You
know
just
give
me
the
the
summary
out
of
all
the
events,
and
I
expect
I
lose
some,
and
you
know
say
this
is
event
out
of
100,
but
I'm
not
sending
you
the
other
100.
That
kind
of
thing,
and
also
ordering,
of
course,
which
is
a
big
big
thing
for
me.
It's
like
how
do
you
order
they've
got
support
in
there
as
well,
which
may
make
future
thinking
around
what
should
be
done
in
async
api
easier
if
it
can
leverage
what
they're
doing
in
cloud
events,
I
don't
know.
A
So
yeah
I
mean
that's,
I
guess
that's
something
you
can
do
here
so
this
my
custom
field
on
the
on
the
cloud
events
schema
is
actually
these.
These
extensions
right
this.
This
is
what
you
mean.
I
think,
unless
I'm
missing
something
new,
maybe
it's
been
a
long
time.
I
don't
look
at
the
spec
at
the
cloud
event.
Spec.
C
But
yeah
you
know
I've
been
a
while,
since
I
reviewed
the
extensions,
but
I
will
I'll
review
them
and
respond
on
on.
A
Okay,
yeah.
That
would
be
useful,
because
these
extensions
are
not
like
the
open
api
and
snkp
extensions
right,
not
this
one,
starting
with
x,
dash
whatever
right,
it
can
be
any
name
right.
A
Actually,
now
you
know
that
you
say,
and
I
think
they
will
probably
was
they
were
suggesting
to
use
not
the
x
dash,
but
the
you
know
these
java
packages,
like
syntax,
like
com,
dot,
company
dot,
whatever.
C
Yeah,
I
know
they've
got
they've
got
they've
got
simple
names,
so
I
don't
know.
Okay
I'll
have
a
look,
but
I'm
not
sure
how
they're
getting
approved,
because
they've
got
very
simple
names
like
data
ref
is
so
that
you
can
not
send
the
actual
payload.
Of
course
you
just
have
a
url
uri
reference
to
it
and
say:
go
look
here
so.
A
Paul
have
a
nice
have
a
nice
dinner
and
thanks
good
evening.
A
A
B
A
Okay
feel
free
to
ask
any
questions
happy
to
to
answer
any
any
questions
here,
just
quickly
because
yeah
this
this
can
be
useful
once
you
are
generating
documentation
with
with
a
sync
api.
A
So
so
far
we
have
the
generator
package,
the
generator
tool,
if
you
want
that,
allows
you
to
generate
code
and
documentation
and
one
of
them
one
of
the
templates.
That's
how
we
call
this
systems
that
or
that
allows
you
to
generate
code,
documentation
in
html,
documentation
and
markdown.
So
we
have
one
template,
which
is
called
html
template.
A
We
are
very
creative
with
the
names
and
yes
so
there's
this
html
template
for
the
generator
that
allows
you
to
generate
html
documentation,
but
we
also
have
a
react
component
which
is
completely
separate
and
they
both
serve
the
same
purpose
in
the
end
like
displaying
documentation
in
html
for
the
end
user
and
one
is
using
react
and
the
other
one
is
using
generator,
and
we
were
thinking
that
we
should
probably
remove
duplicate,
work
here
and
somehow
reusing
one
to
generate
the
other
right.
A
So
we
don't
work
twice
on
the
same
on
the
same
thing
right,
because
right
now,
that
react
component
is
like
months
before,
right
months,
behind
the
html
template
right
now
and
and
of
course,
that
that's
not
good.
A
So
so,
instead
of
doubling
the
work
here,
one
of
the
things
that
we
thought
is
so
the
react
com
so
react
allows
you
to
do
something
really
cool
which
is
rendering
on
the
server
not
only
in
the
browser
and
generating
static
markup.
So
why
not?
Do
we
take
the
react
component
generate
the
statically
on
the
server
on
the
server
on
the
node.js
side,
the
markup,
and
then
we
take
this
markup
and
it
will
be,
it
will
be.
The
output
will
be
greeted
into
a
file
and
all
of
this
done
using
the
generator
tool.
A
So
we
don't
have
to
maintain
the
html
template
and
the
react
component.
Actually,
the
html
template
will
be
using
the
react
component
as
a
source
of
information
for
the
for
the
html,
so
yeah.
I
don't
want
to
bore
you
and
people
watching
the
recording,
but
here's
more
information
about
how
we
could
possibly
do
it
using
the
render
screen
and
react,
dom
hydrate
and
all
the
stuff
and
yeah.
The
idea
is
to
is
to
remove
duplicate
work
right
now.
So
we
don't
have
many
resources.
A
Sorry,
I
don't.
I
should
not
be
saying
resources.
We
don't
have
many
people
working
full-time
on
the
on
the
project,
so
yeah
doubling
the
work
doesn't
seem
smart
right,
so
repeating
the
same.
Work
doesn't
seem
smart,
so.
B
B
I
think
the
documentation
component
is
the
only
part
of
ace
and
kpb.
I
really
have
used
in
anger,
and
I
can
think
of
lots
of
reasons
why
we
really
would
it.
I
would
want
an
html
rendering,
but
not
in
the
browser,
particularly,
are
the
two
outputs
equivalent
like
do.
I
need
some
javascript
dependencies
to
make
it
work
or
kind
of
just
get
html
that
is
just
html
and
just
is
rendered
information.
A
So
that's
so
the
html
template
is
you
don't
need
any
javascript
dependency?
It's
just
html
and
that's
it.
You
get
the
final
rendered
version
right
and
react
component.
Is
you
need
to
react
which
you
need
javascript
right?
So
that's
that's
my
my
point
here
like
on
the
on
the
generator.
So
the
generator
has
a
cool
mechanism
which
is
called
hooks
right
and
after
we
we
have
some
hooks
like
one
of
them
is
after
the
generation
finish,
the
generation
finished.
A
A
This
is
a
little
bit
confusing
to
explain,
but
we
we
create
an
html
template
which
is
actually
empty
right
and
on
the
after
process,
we
actually
generate
the
the
the
markup
and
write
it
into
a
file
from
the
react
component
like
taking
the
react
component
as
a
as
a
source
of
information.
A
A
This
is
the
the
one
that
I
that
I
like
it
that
I
like
the
most
this
first
option,
which
is
the
one
that
you
don't
require
any
javascript
dependency
and
you
just
get
the
plain
markup
on
html
and
css,
and
maybe
some
javascript
for
clicking
interaction.
But
that's
it
can
be
also
embedded
on
the
html.
So
you
don't
get
any
extra
so.
B
Yeah,
just
the
browser
is
not
the
place.
I
normally
use
my
html
output,
like
I
work
quite
a
lot
with
documentation,
so
I
would
want
to
embed
it
somewhere
else
or
to
convert
it
to
somewhere
else
or
restart
somewhere
else.
I
don't
want
a
picture
of
a
rich
single
page
app.
That
does
things.
I
don't
want
that.
I
just
want
markup.
A
Okay,
so
that's
yeah
that
that
would
be
super
super
cool
feedback
as
well:
yeah,
okay,
so
yeah
you,
you
just
would
like
to
have
the
markup
without
even
the
css
or
anything
just
the
markup.
B
I
don't
mind
because
I
can
obviously
like
replace
the
css
and
stuff
I
just
need
to
be
able
to
get
like,
and
probably
I
can
tell
the
generator
hey,
here's
my
css,
or
at
least
here's
some
hints
on
my
favorite
colors.
A
B
A
Okay,
perfect
so
yeah,
so
and,
and
the
other
option
is,
is
actually
that
that
you
were
saying
or
you
were
worried
about,
which
is
we
generate
minimum
html
like
just
a
div
and
then
you
load
the
whole
content
from
javascript,
which
is
not
in
my
in
my
opinion,
it's
not
ideal
because
that
the
browser
is
going
to
understand
it,
but
yeah
you
load
it,
and
when
you
look
at
the
source
code,
you
will
see
nothing.
You
will
see
just
diff,
that's
not
really
good.
A
In
my
opinion,
I
think
if
we
can
generate
the
the
markup
and
optionally
ways
to
enable
disable,
the
css
generation
and
javascript
for
the
interactions
and
the
ena
or
customize
the
css
or
customize
some
stuff.
I
think
that
would
be
better
and
now
that
actually
resembles
reminds
me
not
resembles
it's
too
early.
For
me.
A
I
don't
know
if
you
know
nunjax,
but
it's
you
know
handlebars,
so
it's
kind
of
a
handle
like
same
on
the
same
kind
of
handlebars
as
a
template
engine,
but
it's
similar
to
ginger
ginger
too
from
python.
So
it's
it's
called
nanjax,
but
nanjax
can
get
really
really
really
difficult
to
read.
Sometimes
and
I'll.
Show
you
an
example.
A
So
when
you're
generating
code,
for
instance-
I'm
sorry-
I
don't
know
this
thing.
For
instance,
this
is
generating
a
java
class,
and
this
I
don't
know
how
to
read
this.
So
to
me
this
is
super
hard
to
read
right
and
we
should.
We
should
have
a
better
way
to
do
this
kind
of
thing,
and
that's
why
I
was
considering
adding
react
as
a
as
a
different
template
engine.
A
If
you
want
like,
like,
for
instance,
ink
uses
it
for
the
uses,
react
for
the
cl
for
cli
tools
to
create
cli
tools
or
react
native
uses
react
to
create
mobile
apps,
for
instance.
Right
so
react
is
not
just
for
the
web,
it's
just
a
convention
or
it's
just
a
spec
around
the
views
on
how
to
define
views.
Actually
jsx
not
just
react,
and
this
from
from
there
we
can
actually
output
whatever
we
want.
In
our
case
it
could
be
out
outputting
files
right,
like
outputting
code
outputting.
A
Documentation
and
you
were
saying
like,
for
instance,
we're
trying
to
generate
the
whole
website
for
the
documentation,
but
you
might
be
only
interested
in
just
one
part
of
them
of
it,
like
I,
don't
know
a
table
where
the
schema
is
defined,
with
the
information
or
or
just
a
part
of
it
right.
So
if
we,
if
we
use
react,
it's
going
to
be
easier
to
modularize
these
parts
of
the
page,
so
you
can
actually
say
to
tell
the
generator.
A
I
just
want
this
specific
component,
where
the
the
schema
has
the
information
defined
or
where
the
servers
are
listed,
or
you
know
where
the
description
of
the
whole
api
is
is
rendered
so
yeah.
So
this
is
something
that
we
should
take
into
account
as
well
and
also
we'll
get,
of
course,
we'll
get
better,
better
errors,
because,
right
now,
when
you
get
an
error
on
the
on
ninjax,
it's
sometimes
almost
impossible
to
debug
it
or
hard
to
debug
it
because
of
the
very
nature
of
magix.
So
so
yeah
cool,
cool
cool.
A
Thanks
for
that,
thanks
for
joining
the
call
today
and
also
paul
who
will
be
probably
watching
the
recording
afterwards
and
and
yeah
thanks
for
for
joining
the
project
from
time
to
time.
This
is
really
good
to
see
familiar
faces
from
the
api
community
to
come
to
async
api
as
well,
and
I
love
it.
B
Yeah,
I
have
a
real
interest
in
the
like
the
distributed
systems
and
I'm
not
using
it
at
work,
which
means
I'm
not
really
active
in
the
azik
api
projects.
But
I
think
I'm
super
interested.
I've
done
a
lot
with
message
queues
and
we
run
a
lot
of
mqtt
stuff
in
the
house,
and
I
don't
describe
that.
But
I'd
like
to
and
also.