►
Description
In this session, Senior Engineer Enrique Garcia Cota will walk you through what’s needed in order to build a custom plugin for the Kong Gateway (OSS) - just in time for the Kong Summit Hackathon 2021 starting on September 21st.
Kong’s User Calls are a place to learn about technologies within the Kong open source ecosystem. This interactive forum will give you the chance to ask our engineers questions and get ramped up on information relevant to your Kong journey.
Interested in participating in the next Hackathon? Sign up for updates here: https://konghq.com/summit-hackathon/
A
Thanks
so
everyone
for
joining
us
today,
I'm
taryn
jones,
I'm
part
of
the
developer
marketing
team.
Here
at
kong.
We
want
to
welcome
you
to
today's
online
meetup,
we're
going
to
be
talking
about
getting
an
environment
prepared
for
plug-in
development
in
honor
of
our
upcoming
kong
summit
hackathon.
A
If
you
haven't
heard
of
the
hackathon,
yet
I'm
going
to
give
you
a
quick
overview
and
then
I'm
going
to
pass
it
off
to
enrique
to
walk
you
through
a
short
presentation
and
demo
at
the
end,
we'll
open
it
up
for
q,
a
and
discussion
then
you'll
be
able
to
unmute
turn
on
your
video.
But
if
you
want
to
just
drop
your
questions
in
the
chat,
you
can
do
that
as
well
and
we'll
make
sure
and
keep
an
eye
on
the
chat.
So
with
that,
let's
get
started.
So
what
inspired?
A
But
I
want
to
give
you
just
a
very
quick
overview
of
kong
summit
hackathon
if
you
haven't
heard
of
it
submissions
open
a
week
from
today
and
they
are
open
through
the
through
the
first
day
of
kong
summit,
so
head
to
konghq.com
summit
dash
hackathon
and
you
can
see
all
of
you
can
go
ahead
and
look
at
all
of
the
categories
start.
Maybe
getting
some
ideas
and
gathering
your
team
and
you
can
sign
up
for
updates
so
make
sure
and
go
check
that
out
I'll
post.
A
That
in
the
chat
in
just
a
second
here,
is
the
preview
of
the
categories.
So
you
see,
of
course,
we
have
our
very
first
one,
which
we'll
be
talking
more
about
today,
the
best
best
kong
gateway
plug-in
if
you're
interested
in
mesh
insomnia.
A
Any
of
that
we
have
categories
for
that
as
well
and
we
even
have
a
best-presented
demo
category.
You
know
it's
important
to
show
us.
You
know
exactly
what
you've
done,
so
you
can
potentially
win
two
categories,
so
I'm
just
admitting
some
more
people
here.
Excuse
me:
okay,
so
there's
gonna
be
a
250
prize
for
every
category
winner.
Then
we're
going
to
have
a
500
prize
for
the
overall
winner
and
you're,
going
to
get
a
special
award
at
cong,
presented
at
kong
summit
like
on
the
main
stage
on
day
two
of
kong
summit.
A
We're
gonna
have
a
whole
awards
ceremony
on
the
main
stage,
but
everyone
that
submits
is
an
approved.
Submission
is
going
to
earn
a
limited
edition
t-shirt
that
we're
going
to
send
on
to
you.
So
I
hope
everyone
will
contribute
and,
of
course,
now
we're
really
going
to
focus
on
that
best
kong
gateway
plug-in
category,
so
I
will
pass
it
over
to
enrique
to
get
started
so
I'll.
Stop
sharing
my
screen.
If
you
want
to
share
yours.
B
Let
me
show
the
presentation,
instead
of
my
console,
to
begin
with,
looks
good
all
right,
so
we
have
already
talked
about
the
summit.
Let
me
get
to
my
presentation
itself,
so
my
name
is
enrique
garcia.
I'm
part
of
the
of
the
team
that
deals
or
builds
the
open
source
version
of
the
kong
gateway
and
I've
been
doing
this
for
several
years
already.
B
B
B
One
you
you
can
see
here
that
you
need
coral
as
well,
sorry,
spoilers
and
also
real
path,
but
that
one,
I
think
it's
optional.
The
readme
explains
the
installation
steps
very
easily.
These
are
guidelines.
I
would
say
you
don't
have
to
install
it.
This
way
you
don't
have
to
create
a
dot
local,
slash
bin
folder.
If
it's
not
convenient
for
you.
B
The
main
thing
that
you
have
to
do
is
you
have
to
include
the
pongo
binary
in
your
path
somewhere,
I
said
binary,
but
really
what
pongo
is
is
a
bunch
of
scripts
in
bash
scripts.
If
I
remember
correctly
so
yes,
this
is
a
guideline
about
how
you
go
about
installing
it
by
creating
a
symbolic
link
on
this
particular
path
on
this
particular
local
bin,
but
I
actually
have
it
on
a
different
place.
B
What
you
have
to
check-
and
I'm
going
to
switch
to
my
console
for
a
little
bit-
is
that
you
need
to
have
the
pongo
executable
installed.
Okay,
if
you
have
it
chances,
are
that
you're,
good
okay.
B
What
I
was
spoiling
before
is
that
these
instructions
are
for
linux
and
mac,
but
recently
we
added
support
for
windows
as
well.
This
is
a
very
new
development.
If
I
remember
correctly,
this
was
done
on
the
last
month,
so
it's
still
a
bit
in
beta,
but
you
can
follow
the
instructions
on
the
repo
as
well.
There
is
a
section
for
windows
and
you
can
install
on
go
on
windows
that
way,
so
you
can
do
development
of
plugins
in
windows.
B
I
don't
have
a
windows
machine,
so
I'm
not
going
to
follow
those
well.
In
fact,
I
already
have
pongo
installed,
so
I'm
not
going
to
follow
those
instructions,
but
that
was
the
main
thing
you
need
to
have
pongo
in
order
to
do
what
we
are
going
to
do
in
a
couple.
Steps
next
step
is
creating
a
basic
plugin.
B
First,
a
little
bit
a
little
note
about
where
you
can
find
the
docs.
The
main
docs
side
contains
a
guide
called
plugin
development.
You
can
see
it
at
the
top
of
this
screenshot
and
yes,
it
explains
how
what
are
the
different
folders
and
files
that
compose
or
can
compose
a
plugin,
but
in
order
to
start,
I
wouldn't
start
with
this
guide.
Instead,
I
would
go
to
this
other
project.
B
Kong,
minus
plugin
and
this
what
this
project
is
is
a
template.
This
is
a
way
to
basically
have
a
bunch
of
files
already
pre-made
with
the
default
parameters,
so
you
can
start
instead
of
going
from
zero
to
60.
You
start
at
60
with
with
this
one
it
has
tests.
It
has
a
bunch
of
stuff
we're
going
to
see
some
of
that
stuff
in
a
moment,
and
you
will
notice
that
instead
of
the
usual
clone
drop
down
here
at
the
top,
you
have
a
very
unusual.
B
B
Let
me
go
over
this
one.
You
will
get
a
dialog
such
as
this
one
and
you
can
add
a
name
to
your
plugin,
a
description
and
then
you
will
have
your
own
fork
or
it's
not
exactly
a
fork,
your
own
version
of
the
plugin,
using
the
template
that
I
just
said
there
is
one
note
that
I
wanted
to
add,
which
is
that,
in
order
for
things
to
work
correctly,
we
have
to
be
a
bit
careful
about
how
we
name
things.
So
my
recommendation
is
what
you
can
see
on
the
screen.
B
Okay,
so
I
think
this
is
the
time
to
start
demoing
this.
So
I'm
going
to
oh
I'm
going
to
exit
the
presenter
mode.
I
think
that's
sorry,
I
think
that
text.
Yes,
I'm
going
to
go
to
github.com.
B
B
I'm
going
to
put
here,
okay,
it's
public
and
I
don't
need
to
include
all
branches,
so
I'm
creating
my
reponel
here.
It
is
here
is
me
okay,
we
got
it
and
that
seemed
to
work
quite
well.
There
are
a
couple
things
that
we
should
note,
which
is
that
what
this
template
doesn't
allow
us
to
do
is
to
rename
the
plugin.
So
I
named
it
add
headers,
but
here
you
can
see
that
it's
still
called
my
plugin,
my
plugin.
B
And
then
I'm
going
to
look
for
my
plugin,
for
example,
I
use
the
silver
searcher
there.
Your
software
editor
will
probably
have
a
way
to
look
for
files
named
in
a
certain
way.
This
is
what
I
use.
B
C
B
B
B
B
So
I
have
committed
that
change,
and
that
is
basically
the
setup
for
for
creating
a
new,
a
new
plugin.
The
next
thing,
and
the
reason
why
I
wanted
you
to
install
pongo
before
we
started,
was
because
we're
going
to
use
it
now
to
run
all
the
specs
which
are
the
tests
I'm
going
to
give
them
a
quick
look
before.
B
Spec
of
headers
and
first
unit
spec-
these
are
quite
fast
tests
that
make
very
basic.
Well,
you
probably
know
already
what
the
unit
test
is
very
basic
stuff
about
yeah
the
configuration.
B
Some
of
these
are
also
examples
you
can
most
of
the
time
erase
all
of
this,
but
you
can
use
it
as
a
guide
to
write
your
own
tests
and
the
same
goes
with
the
integration
tests.
These
are
a
bit
these
take
a
bit
longer
to
run
because
they
instantiate
a
an
instance
of
kong
in
order
to
to
run
the
tests,
and
they
also
run
them
in
using
all
the
available
databases,
so
posgres
cassandra
and
dbless
as
well.
B
A
B
I
don't
have
a
right
answer
to
that,
I'm
afraid
it's
possible
to
create
plugins
in
go,
but
on
this
presentation
we
are
going
to
concentrate
ourselves
on
the
lua
side
of
things.
It's
I
I
can
get
back
to
you
on
that
later.
If
you
want,
I
haven't
prepared
for
presenting
that
part.
I'm
sorry.
A
B
Okay,
so
the
amount
of
types
of
plugins
doesn't
impact
the
performance
at
all,
but
up
to
a
certain
point,
the
number
of
plugin
instances
which
are
different
from
plugins
types,
which
is
what
we're
creating
now
yeah
it's
running
the
tests
already
the
unit
tests
have
all
passed
and
the
integration
tests
are
passing
so
yeah
everything
passed.
Everything
is
green.
Most
of
the
tests,
as
I
said
before,
are
trivial
not
very
useful,
except
as
guidance
for
you
guys
to
add
your
own
tests,
but
you
can
see
some
interesting
stuff.
B
B
Yes,
I
have
seen
instances
of
enterprise
customers,
mostly,
which
had
half
a
million
plugin
instances
installed,
and
that
did
cause
some
problems,
especially
when
they
wanted
to
update
a
plugin.
Then
what
an
entity
called
the
plugins
iterator,
which
is
the
global
thing
that
we
use
in
order
to
know
what
plugins
need
to
be
run
on,
what
requests
that
took
a
while
to
read,
but
that
that's
that's
what
I
am
seeing
problems
when
you
reach
half
a
million
instances
and
again
plug-in
types,
don't
have
this
problem,
it's
only
plugin
instances
that
are
problematic.
B
That
was
the
the
basic
plugin
in
action.
Now
we
can
do
more
things
in
addition
to
running
plugins,
sorry,
the
plugin
tests
there
is
also
okay.
I
want
to
run
a
pure
kong
with
this
plugin.
How
do
I
do
that?
Do
I
have
to
install
a
con
locally
on
my
machine?
No,
you
can
use
a
docker
instance
in
order
to
do
that,
and
this
is
where
I
have
to
give
you
a
warning.
B
I
have
done
this
in
the
past
and
it
worked,
but
for
some
reason
today
it
didn't
on
my
machine
I'm
going
to
try
again
give
my
best
effort,
but
if
it
doesn't
work
we'll
just
have
to
do
with
these
lights.
Okay.
So
first
I'll
word
about
lua
rocks.
B
As
I
have
said
before,
we
are
going
to
install
a
lua,
plugin
and
lua
has
a
repo
of
open
source
in
in
other
places.
These
are
called
in
ruby.
These
are
called
gems
in
node.
They
have
another
name
nodes.
I
think
it's
called
packages,
maybe
so
this
lua
rocks
is
basically
the
package
manager
for,
and
kong
itself
is
a
lower
rock
in
lua
rocks.
B
Your
plugin
needs
to
be
in
lua
rock
in
order
to
for
you
to
be
able
to
use
it
inside
the
custom
docker
image,
so
you
have
to
upload
your
plugin
here,
that's
the
short
version
and
how
you?
How
do
you
do
that?
Well,
you
go
to
lorax.org
and
create
an
account,
it's
very
easy,
and
then
you
go
to
your
plugin
and
do
these
things
I'm
going
to
do
those
in
a
moment
fair
warning
about
naming
of
things
here
I
said
my
plugin:
it
should
be
called
kong.plugin.
B
B
C
B
B
You
have
probably
seen
something
similar
to
this
on
your
language
of
choice
in
go,
you
have
a
tamil
file
that
defines
the
dependencies,
etc.
This
is
similar
to
that
things
that
are
worth
noticing,
for
example,
here
is
where
you,
you
define
only
the
files
that
you
need
on
your
plugin.
B
B
B
And
I'm
going
to
upload
here,
I'm
going
to
upload
the
rok
spec
that
I
have
just
created.
B
B
Yeah
it
works
correctly,
so
I
don't
expect
any
trouble
from
docker
when
it
tries
to
install
this.
This
package
from
lua
rocks
okay,
going
back
to
the
presentation.
The
next
thing
is
talking
about
dockercon.
This
is
the
project
where
we
say
how
you
should
run
kong
inside
docker.
It
has
two
important
folders
for
this
presentation.
B
Okay.
So,
let's
start
by
cloning
in,
in
my
case,
I
already
have
a
dockercon
on
my
machine.
Then
we
have
to
run
sorry.
We
have
to
go
to
customize
in
order
to
build
a
custom
image
and
well
I'm
going
to
do
these
steps
now.
I
think
it's
easier
than
explaining
the
steps
and
then
doing
them
so
here
and
then.
B
Image
like
this,
but
this
plugin
name
is
not
correct,
and
this
is
one
of
the
traps
that
you
have
to
be
aware
of.
Up
until
now,
everything
has
has
been
called
com,
plugin,
add
headers.
Here,
here's
the
exception.
You
have
to
put
only
add
headers
here
instead
of
cone
plugging
at
headers,
and
I
believe
that
was
the
reason
why
I
was
having
trouble
this
morning,
but
I'm
not
100
sure.
Let's
let
me
try
I'm
going
to
use.
Let
me
explain
the
parameters
a
little
bit,
I'm
going
to
use
the
latest
version
of
kong.
B
Con
2.5,
I'm
going
to
add
a
single
custom,
plugin
called
add
headers,
which
will
be
pulled
from
dual
rocks.
I
should
mention
that
in
this
folder
in
customized
there
is
a
readme
that
explains
that
there
is
a
way
to
do
things
without
uploading
stuff
to
lua
rocks.
So
you
don't
have
to
do
it
in
public,
but
for
the
purposes
of
this
demo
we
are
going
to
use
lua
rocks.
B
We
don't
want
to
use
the
cash,
so
everything
gets
rebuilt
from
start,
so
we
don't
have
any
phantom
cash
problems
from
the
previous
attempts
I
have
done
today
and
finally,
we
wanted
to
name
our
kong
image
somehow.
So
this
is
the
the
name
that
image
will
will
have
and
very
important.
There
is
a
dot
at
the
end.
Don't
forget
this.
It's
very
easy
to
miss,
so
it's
built
in
on
this
log.
It
will
happen
fast,
but
on
this
lock
at
some
point
it
will
download
the
oh.
B
B
Okay
seems
to
be
working
so
far,
so
the
last
step.
Well,
the
last
step
in
order
to
have
a
con
with
this
plugin
up
and
running
is
actually
started.
So
I'm
going
to
go
to
the
compose
folder
inside
this
and
then
I'm
going
to
use
docker
compose.
I
have
to
pass
it
a
variable
that
says:
okay,
you
have
to
use
this
image
instead
of
the
default
common
image.
So.
C
B
These
is
what
the
problem
I
have
been
fighting
with
the
whole
day.
I
don't
know
exactly
what
is
going
on
here.
I
apologize
in
advance.
I
should
have
tried
this
yesterday
instead
of
today,
but
I
didn't
get
time
to
fix
it.
What
should
be
happening
here
is
that
kong
should
start,
and
then
you
will.
You
would
also
see
posgress
and
cassandra
start
along
with
kong,
and
what
is
happening
is
that
the
initial
plugins
are
not
being
either
correctly
detected
or
initialized
or
something
along
those
lines.
B
C
Yeah,
so
I
think
it's
because
you
did
not
enable
the
bundle
plugins
in
this
second
build
argument.
Plugins
equals
to
my
plugin
and
if
you
are
facing
an
error
which
says
the
plugin
is
in
use,
but
not
enabled
that
usually
points
to
this
issue
that
this
plugin
setting
is
not
set.
The
plugin
is
not
enabled
in
mentioned
in
this
variable.
C
This
variable
is
the
plugin
setting
which
is
found
in
cong.conflight
so
see.
The
error
is
so
somewhere.
B
B
Yeah,
what
I
was
saying
before
is
that
I
have
done
tests
before
with
other
plugins.
One
of
them
was
uppercase
response.
That's
what's
given
us
an
error
here,
but
this
was
days
ago
and
now
I
tried
again
and
it
didn't
work
and
I
think
it
might
be
related
with
what
you're
saying
with
the
database.
However,
I
have
reset
and
restarted
even
my
machine
and
erased
all
the
caches.
I
could
imagine
and
that's
still
happening,
so
I
think
I'm
we're
going
to
stop
here.
B
I'm
going
to
tell
you
what
should
happen
after
this
is
done
correctly.
Hopefully,
you
won't
have
a
problem
with
this
particular
plug-in,
because
you
won't
have
it
in
on
your
machine,
but
I
do
have
it
and
it's
giving
me
trouble.
I
don't
know
exactly
why
so.
C
Yeah,
where
you
are
passing
the
argument
for
your
plugin
there,
before
the
your
plugin
name,
just
add,
bundle
comma
and
the
name
of
your
plugin.
C
B
Th,
this
is
what
I
said:
let's
not
try
to
debug
the
problem
here,
it's
something
particular
to
my
machine.
There
is
some
kind
of
global
state
somewhere
that
it's
saying
that
this
plugin
should
be
included,
but
that's
not
the
standard
kung
provided
plug-in.
It's
a
custom,
one
that
I
built
while
doing
tests
for
this
presentation,
but
somehow
is
giving
me
trouble
now.
So,
let's,
let's
not
try
to
debug
it.
Now,
probably
there
is
something
missing
either
here
or
here
on
one
of
these
two
slides.
B
B
B
B
A
plugin
I
used
as
an
example
the
other
day
and
it's
giving
me
trouble
now,
but
in
your
case
you
should
use,
add
headers
and
if
all
these
works
correctly,
then
from
that
moment
on
all
requests
and
responses
from
any
request
on
my
service
should
get
an
extra,
an
extra
header
on
the
request
and
on
the
response
and
that's
what
this
plugin
does
by
default,
adding
a
request
header
and
a
response
header,
I'm
sorry.
I
cannot
show
you
that,
but
these
are
the
troubles
of
making
demos.
Sometimes
they
don't
work
as
you
want.
B
A
So
we
do
have
a
couple
questions
from
your
first
demo.
I
just
wanted
to
clear
up
real
quickly.
First,
and
that
was:
can
we
create
custom
policies
with
the
plugin
to
have
authorization
or
or
authentication
in
place
for
apis?
Does
the
rebuild
call?
Oh
I'm
sorry.
That
was
a
separate
question.
That's
it.
B
I
don't
know
exactly
what
what
this
person
means
by
policies,
but
the
shorter
version
is
that
this
is
code.
You
can
add
whatever
you
want
in
code.
If
the
question
is,
can
we
create
entities
that
live
on
the
database,
which
is
a
bit
more
concrete,
then?
Yes,
there
is
a
well
it's
here
on
the
on
these
second
link.
Plugin
development,
the
plugin
development
guide
has
a
section
about
creating
custom
entities,
and
one
of
the
entities
that
you
could
create
would
be
a
policy.
So
then
those
policies
would
live
on
the
database.
B
B
The
good
one-
yes
you
you
would
need
at
the
very
least
daos.lua
in
order
to
define
a
custom
policy
entity
with
the
files.
Sorry
with
the
fields
that
you
want,
like
the
name
and
if
you're
going
to
use
the
database,
you
would
have
to
create
migrations
in
order
to
create
the
records
on
the
database,
so
they
can
be
stored.
A
He
had
a
follow-up
question
and
we
may
be.
This
is
also
the
first
demo.
So
we
might
be
a
little
out
of
context
here,
but
he
says:
does
the
rebuild
cause
any
downtime.
B
So
when
it
says,
when
they
say
rebuild,
I
assume
they
mean
the
command
cond
space
rebuild
that
is
sorry
rebuild
is
not
a
kong
command.
Reload
is
a
common
command
that
happens
very
fast.
Rebuilding
takes
some
time
in
general,
especially
if
you
are
sharing
via
zoom,
like
I
am
doing
now.
Docker
and
docker
related
stuff
tends
to
be
slow
because
it
uses
the
network
in
order
to
download
stuff.
B
So
the
more
the
more
stuff
you
have
to
download
with
docker
the
slower
it
will
go.
Even
if
you
have
cached
a
lot
of
things,
if
you
happen
to
touch
a
a
step
that
is
up
in
the
cache,
you
will
have
to
download
a
bunch
of
stuff.
So
it
depends
a
little
bit
on
how
your
docker
cache
performs.
A
Okay,
great
thank
you
and
then,
if
anyone
else
has
any
questions,
yeah
feel
free
and
raise
your
hand.
You
can
speak
up
or
enter
them
in
the
chat
and
yep
looks
like
we
have
one
here.
Is
it
possible
to
create
a
common
custom
plugin
for
request,
response
transformation
and
add
lua
code
when
the
plugin
is
added
to
a
service
or
route.
B
The
first
well,
the
second
to
last
question
is:
can
I
add
lua
code
as
config
on
a
plugin?
That's
that's
what
this
person
is
asking
and
the
answer
is
yes,
but
we
decided
to
add
some
restrictions
on
how
that
code
is
executed
and
we
encourage
our
users
to
do
that
as
well.
So
here
is
an
example
of
what
this
person
wants
to
do.
B
B
B
The
reason
why
we
do
that
is
because,
in
general,
the
person
maintaining
your
server
and
the
person
adding
plugin
instances
to
your
com
instance
might
be
different
and
the
trust
might
be
different
as
well.
So
for
that
particular
case,
we
just
unboxed
it.
You
can
look
at
the
code
of
this
plugin
and
see
how
we
did
that
if
you
are
doing
a
plug-in
for
some
custom
stuff
that
you
are
not
going
to
share
with
anyone
and
you
trust
everyone
involved,
then
you
can
probably
get
away
with
not
some
boxing
the
code.
It's
completely
possible.
B
Okay.
The
next
question
is
in
dblast
mode
when
you
reapply
the
config
via
the
admin
api,
slash,
config,
endpoint,
we'll
proxies
handling,
live
traffic
in
flight
break
or
does
run
runtime
con
leverage
their
rather
praxis,
just
fine
while
it
reveals
it
all.
Okay,
that's
a
very
good
question:
lots
of
things
going
on
there.
That's
not
really
the
plugin
development
at
all,
but
I
think
I
can
answer
more
or
less.
We
did
have
problems
with
this.
B
What
this
person
is
asking
happening
when,
when
using
db
less
there
was
some
shared
state
which
provoked
errors
when
we
either
reloaded
a
new
version
of
the
config
or
we
restarted
the
the
servers
restart.com
with
com,
conreload
or
congresstart.
B
What
was
happening
was
that
there
were
old
instances
of
kong
still
running
and
new
instances
as
well,
and
they
both
were
acting
on
the
same
memory.
That
is
not
happening
anymore.
What
we
do
have
now
is
a
pagination
system,
so
every
time
you
reload,
the
pages
are
switched
and
the
old
instances
of
con
use,
the
old
pages
and
the
new
ones
use
the
new
pages,
and
you
cannot
switch
more
than
once.
At
the
same
time
it
it
tells
you
to
wait,
it
gives
you
an
error
and
that's
how
we
handle
that
particular
problem.
B
C
Okay
appreciate
that
yeah
I
remember
working
yeah.
This
is
jeremy.
I
asked
that
asked
the
question.
I
remember
working
with
a
bungle
a
long
time
ago,
oppo
about
when
kong
was
in
db
mode.
You
know
routes
and
resources
when
it
was
building
in
the
background
would
break
during
run
time.
If
you
sound
like
a
load
test
to
a
proxy
and
then
you
made
a
config
change
right,
but
then
he
added
something
that
added
like
an
old
router,
new
router
table
and
yeah.
C
B
B
Kong
yeah
the
same,
I
was
involved
with
apple
the
person
who
did
this
change
and
I
was
the
one
who
reviewed
it.
So
it's
kind
of
fortunate
that
I
got
this
question
yeah
appreciate.
C
B
So
yes,
a
little
bit
of
spoiler,
we
are
considering
other
alternatives
to
doing
what
we
are
doing
now,
because
the
two
frame
buffer
approach
has
a
problem
which
is
that
it
consumes
a
lot
of
memory,
at
least
while
the
new
instances
are
being
deployed
and
the
old
ones
are
still
there
once
everything
has
been
deployed
you
can
erase.
B
B
I
really
don't
know
this
one
I
haven't
tried,
as
I
said,
I'm
not
the
person
who
developed
these
tools
via
docker,
compose
and
pongo,
and
everything
I
have
shown
on
this
meeting
is
not
my
creation
and
I
actually
don't
use
them
very
often
because,
since
I
have
to
do
con
development
changing
kong
itself,
the
way
I
test
plugins
is
a
bit
different.
So
I'm
afraid
I'm
not
super
familiar
with
these
very
specific
details,
like
the
one.
This
person
is
asking
sorry
about
that.
A
On
the
line,
not
sure,
if
he's
able
to
answer
that
either
though
but
siddhartha
I
see,
you
have
your
hand
raised.
If
you
want
to
go
ahead
and
unmute.
C
Sure,
hey,
thank
you,
hey
about
kind
of
like
a
follow
up
with
the
previous
question.
The
this
is
regarding
the
performance
per
se,
so
I
remember
you
mentioned
increasing
the
number
of
plug-ins
or
might
not
technically
make
the
performance
bad,
but
I
am
trying
to
understand
more
about
the
instance
versus
the
number.
B
Sure,
okay,
so
this
is
part
our
fault.
We
decided
some
time
ago
that
we
were
not
going
to
make
a
difference
specifically
in
in
the
docs
about
what
is
a
kong
definition,
a
plugin
definition
in
a
com,
plugin
instance,
but
those
are
very
different.
The
definition
is
the
source
code
of
the
plugin,
so
all
the
files
and
the
schema
of
the
plugin
that
defines
how
the
conflict
looks.
B
All
of
that
is
the
definition.
Then
you
can
have
many
instances
of
the
plugin
running
simultaneously
on
one
con
instance.
For
example,
you
can
add
an
instance
of
a
plugin
to
an
individual
customer,
sorry
consumer
on
hong
kong.
So
if
you
have
half
a
million
consumers,
you
could
have
half
a
million
plugins
one
for
each
consumer.
B
So
what
I
was
saying
before
is
that
the
number
of
plugin
definitions
is
not
a
problem.
I
have
never
seen
that
been
a
problem
on
any
consumer
or
otherwise.
However,
I
have
seen
problems
when
there
were
too
many
com
plugin
instances,
so
yeah
half
a
million
plugging
instances
installed
on
half
a
million
customers.
That's
the
example
that
comes
to
mind
in
that
case.
Yes,
you
will
have
problems
when
you
want
to
update
a
simple
plugin,
for
example,
then
the
global
thing
that
we
have
will
have
to
be
rebuilt,
and
for
now
it's
not
incremental.
B
B
B
C
I
mean:
do
you
have
like
sorry
again,
just
one
last
question,
so
do
you
have
like
a
like
a
number
which,
after
which
it
might
be
haywire
like
I
mean
there
might
be
some
performance
leaks
like
I
mean,
let's
say
like
1000
plugins
or
is
that
do
you
have
anything
like
that,
like
the
baseline.
B
The
the
thing
yeah
we
get
asked
about
numbers
a
lot
and
I'm
afraid
I
don't
have
a
straight
answer
to
give
you.
I
have
an
answer
that
will
make
you
work
more,
which
is
not
what
people
want,
which
is.
Do
your
own
tests
on
your
machines.
That's
my
recommendation.
If
you
are
planning
to
suddenly
increase
the
number
of
plug-in
instances,
a
lot,
then
what
I
would
do
is
creating
a
staging
environment
and
trying
that
and
seeing
how
that
performance.
B
The
problem
is
that
kong
is
an
on-premise
solution,
so
there
is
a
not
a
single
number
that
we
can
give.
It
depends
on.
The
amount
of
performance
depends
on
the
amount
of
cpus
you
have
or
whether
it's
virtualized
or
not,
on
how
much
memory
you
have
even
so
right
yeah
do
your
own
tests,
I'm
sorry!
I
cannot
give
you
any
more
specific.
C
A
A
A
A
And
then
I
know
we
are
at
the
top
of
the
hour.
Enrique
you,
let
us
know
if
you
need
to
go.
Jeremy
did
have
one
more
question
from
a
github
discussion
thread.
If
we
had
extra
time
he
said,
but
I'll
leave
that
up
to
you.
C
Yeah,
you
don't
have
to
read
this
all
out,
but
I
can
get
you
to
like
the
meat
of
it
so
db.
Export
right
gets
the
oauth
credentials
in
this
format
that
you're
looking
at
in
this
top
block
here,
where
the
consumers
uuid,
is
just
an
element
right
there,
consumer
uuid,
whereas
if
you
scroll
down
a
little
bit
in
here,
you'll
see
where
I
kind
of
print
a
sample
of
what
the
credential
by
id
from
the
db
looks
like
if
we
keep
scrolling
down
a
little
bit
further
a
little
bit
further
down
right
here.
C
So
in
the
db
mode,
this
credential
from
client
id
table
this
block
down
below
where
it
has
a
kind
of
the
lua
table
printing
out.
You
can
see
in
here
when
it
reads
it
from
the
db.
It
makes
the
id.
Then
it
has
a
consumer
element,
but
rather
than
just
put
the
id
in
it
makes
consumer,
then
a
lower
element
id
and
then
the
id
does
that
cause
any
issues
for
like
db
versus
db-list
mode.
C
I'm
just
curious
on,
like
the
parsing
of
that,
when
you
you
run
the
same
code
execution
just,
does
the
id
being
indented
with
the
id
value
matter.
First,
the
dbx
port.
I'm.
B
B
C
A
C
C
B
As
with
any
performance
tests,
they
have
to
be
taken
with
the
grain
of
salt.
If
I
remember
correctly,
they
test.
Basically
the
happy
path
like
inserting
up
a
lot
of
services.
Things
like
that
again,
your
particular
scenario
or
usage
might
be
different
from
that
that
we
are
testing.
So
if
you
can
give
it
a
a
look,
if
you
want
as
orientation
in
order
to
write
your
own
tests,
but
I
wouldn't
take
them
as
this
is
the
way
to
test
kong
everywhere.
All
the
time.
A
Sounds
good
well
we're
just
a
few
minutes
past
the
hour,
so
I
think
we
can
go
ahead
and
wrap
up.
Thank
you
all
so
much
for
joining
and
remember
these
calls
happen
second,
tuesday,
of
every
month.
So
please
join
us
next
month.
Thank
you
so
much
enrique
for
filling
in
this
week
and
guanlon
for
fielding
some
questions
on
the
chat
have.