►
From YouTube: gRPC Community Meetup 10.27.20
Description
Check out the meetup from October 27, 2020.
Demo: "Graph Traversals using gRPC," by Mya Pitzeruse, Software Engineer @ effx. The demo will be on my open source project, but we do use gRPC heavily at effx (we just don't do anything super fancy). It should be a good preview into the talk I'm setting up for next year on streaming with gRPC.
A
And
yay
awesome,
so
I
think
I'm
gonna
pass
it
on
to
maya
to
do
the
demo
maya.
Would
you
like
to
introduce
yourself.
B
Sure
so
last
week
I
guess
maria
and
was
it
jackie
had
reached
out
and
like
asked
me
to
do
a
demo
on
grpc.
There
wasn't
a
lot
of,
let's
say,
guidance
around
like
what
to
present
on,
and
so
I
just
I
picked
one
of
the
projects
that
I've
been
working
on
for
the
last
couple
of
years.
I
dropped
a
link
to
the
presentation
slide
deck
in
the
meetup
notes.
So
if
you're
looking
at
those,
you
can
kind
of
follow
along
but
yeah
I'll.
B
A
B
Cool,
so
I
don't
know
where
to
like
really
begin
with
this,
but
I
have
recently
latched
on
to
some
kind
of
fun
experiments
where
I've
been
taking
kind
of
common
algorithms
and
implementing
them
over
grpc
stream
apis
a
lot
of
it
started
back
when.
Well,
I
guess
let
me
kind
of
first
introduce
myself
so
like,
like
I
said
earlier,
my
name
is
maya,
my
pronouns
are
she
and
her
I've
been
working
with
grpc
for
a
very
long
time.
My
current
company
fx
uses
it
pretty
heavily.
B
I've
only
been
here
for
like
two
weeks,
so
there's
not
much.
I
can
really
speak
on
in
terms
of
like
what
we
have
available,
but
I've.
I
got
started
back
on
the
project
in
I
want
to
say
it
was
like
2016-ish
when
I
first
initiated
kind
of
our
migration
to
that
and
deprecating
our
internal
boxcar
library
back
at
indeed
over
time.
B
B
It
had
two
key
kind
of
goals
in
mind:
one
be
a
lot
more
portable
than
the
former
options
and
then
make
it
a
lot
easier
to
use
and
what
it
does
is
it
lets
you
kind
of
track
how
projects
depend
on
one
another
by
kind
of
inferring
relationships
through
their
kind
of
package,
manifest
files
like
node.js
of
the
package.json
in
go
it'd,
be
go.mod,
so
on
and
so
forth.
B
So
the
types
of
things
that
the
system
can
kind
of
like
help,
you
answer
is
what
versions
of
like
client
go.
Are
you,
depending
on
for
kubernetes
who's,
using
projects
like
eslint
at
a
non-dev
dependency?
B
What
open
source
libraries
does
our
company
use
the
most
and
then
even
kind
of
looking
at
it
from
just
more
of
a
generic
standpoint
like
what
projects
depend
on
some
specific
internal
library?
What
version
are
they
using?
B
B
I
hope
most
people
here
understand
what
graphs
are,
but
just
in
case
it's
a
abstract
data
type,
there's
kind
of
two
types
of
things
that
you
typically
interact
with
nodes
and
edges
edges
are
used
to
represent
the
association
between
the
nodes.
B
Some
characteristics
about
graphs
are
often
that
they're
directed
or
undirected
in
this
case.
On
the
right
hand,
side
we
have
an
undirected
undirected
graph.
We
could
make
statements
like
a
and
b
are
connected
b
and
c
are
connected.
A
and
z
are
connected,
so
on
and
so
forth,
depth
cloud
uses
a
specific
type
of
graph,
a
dependency
graph
which
is
intended
to
model
the
dependencies
between
objects.
So
a
needs
b
and
c
b
needs
d
and
c
needs
d.
B
Some
characteristics
about
the
dependency
graph
is
that
it's
directly
directed
and
often
potentially
cyclic,
I
say
potentially
because
most
dependency
resolution
schemes
have
mechanisms
to
like
detect
cycles,
but
for
some
subset
of
systems.
You
know
you
can't
make
that
guarantee
all
the
way
across,
and
so
we
end
up
having
to
account
for
potential
cycles
in
the
graph.
B
The
rough
data
model
for
the
system
looks
kind
of
something
like
this.
We
track
everything
from
the
project
that
we
discover
these
libraries
from
to
the
different
dependencies,
and
I
think
at
one
point
I
had
this
as
like.
This
is
kind
of
a
simple
representation,
because
we're
really
only
taking
two
sources
into
consideration
when,
in
practice,
you
often
need
to
take
in
a
lot
more
than
you
know,
two
or
three
repositories.
B
So
I
really
wanted
a
system
that
would
just
leverage
you
know
your
common
relational
solution,
so
we
have
support
for
postgres,
mysql
sqlite
and
then
that
even
kind
of
goes
off
into
the
world
of
well.
We
also
kind
of
support,
cockroachdb
the
tests
and
some
of
the
newer,
like
cloud
native
type
solutions.
B
If
you
were
to
like
think
about
the
data
representation
in
terms
of
like
an
excel
sheet,
or
something
like
that,
this
is
kind
of
how
the
data
ends
up
getting
laid
out.
One
of
the
nice
things
about
this
schema
is
that
the
nodes
and
the
their
corresponding
edges
are
all
kind
of
grouped
together
on
disk,
which
makes
a
lot
of
the
lookups
really
really
efficient.
B
So
yeah.
Why
did
I
choose
grpc
for
the
project?
Probably
the
biggest
thing
was
both
of
the
previous
systems
were
implemented
using
rest
and
both
kind
of
had
their
limitations
in
terms
of
what
we
could
really
implement.
B
In
the
end,
one
of
the
biggest
lessons
that
we
learned
was
having
that
topical
sort
function
be
done
as
kind
of
a
unary
type
call
where
it
was
getting
all
buffered
on
the
server
like
predicting
the
memory
usage
for
that
was
really
hard
to
do,
and
it
would
often
result
in
like
killing
the
process
and
then
needing
to
reallocate
more
memory
so
on
and
so
forth.
So
we
were
really
looking
to.
B
So
with
that,
let's
kind
of
like
walk
through
a
demo,
I've
got
a
whole
bunch
of
links.
Dropped
in
the
speaker.
Notes
that
you
can
kind
of
look
through
there's
an
internal
api
that
I
refer
to
as
like
the
graph
store
which,
just
more
or
less
exposes
that.
Oh,
what
you
call
it
api
that
is
really
just
you
know,
put
in
the
edges
or
the
nodes,
delete
the
edges
or
the
nodes,
give
me
the
neighbors
and
then
what
I
kind
of
call.
B
This
arbitrary
traverse
function
and
if
you
really
break
down
whether
you're
talking
about
breath
research
through
research
or
any
kind
of
sequence,
you're,
really
just
passing
along
a
series
of
like
give
the
neighbors
for
you
know
such
so.
If
we're
not
super
familiar
like
a
visual.
B
If
I
remember
correctly,
one
of
these
has
kind
of
a
nice
gif
of
kind
of
how
referrer
search
works
right.
So
we
start
at
the
root
and
then
we
go
down
layer
by
layer.
So
we
go
to
a
and
we
do
b,
d
e,
f
g,
so
on
and
so
forth.
What's
kind
of
nice
about
this,
is
you
can
kind
of
flush
at
each
stage
in
breadth,
first
search,
and
so
it
made
it
kind
of
nice
to
implement
over
a
stream
api.
B
Kind
of
just
show
a
little
bit
of
the
server
code.
I
know
a
lot
of
the
requests
that
I
see
come
through
and
like
help
channels
are
around
like
how
do
you
kind
of
handle?
You
know
the
the
handoff
between
client
and
server
with
regards
to
kind
of
the
stream
based
processing.
B
Eric's
talk
from
like
2018
does
a
really
good
job
talking
about
like
when,
when
your
kind
of
client
isn't
sending
data,
it
should
be
pulling
data
and
like
when
your
server
is
not
pulling
data,
it
should
be
sending
data,
so
this
is
kind
of
more
or
less
the
setup
for
it
all.
You
see
kind
of
the
same
type
of
thing
where
you
would
initialize
your
breadth.
First
search
using
a
queue
start
to
slowly
walk
and
process
the
requests
as
they
came
off
the
stream
and
then,
as
you
got
data
back,
you
would.
B
You
know
flush
the
responses
back
to
the
client,
and
then
I
even
built
in
kind
of
a
nice
little
interrupt
type
of
component,
where,
if
somebody
used
depth
first
search
or
breadth
for
a
search
to
say,
find
a
very
specific
node,
they
could
actually
terminate
or
short
circuit
from
the
client's
perspective.
B
How
does
this
end
up
kind
of
looking
to
users?
Well,
the
nice
thing
is,
for
the
most
part,
like
people,
don't
realize
that
it's
implemented
that
way
under
the
hood.
So
we
just
give
people
some
very
simple
command
line
tools.
We
can
let
people
grab
the
pendant
for
libraries,
so
I'm
going
to
use
grpc
as
an
example
here-
and
I
loaded
this
thing
with
some
fun
data-
so
it'll
be
really
interesting
to
see
some
of
the
stuff
we
get
back.
B
We
get
a
lot
of
things
back
and
part
of
that,
because
we
don't
have
a
lot
of
great
server-side
filtering
right
now,
but
you
can
really
start
to
see
like
which
projects
are
using
grpc
from
like
hashicorps
vaults
project
to
sentinel,
linker
d,
giant
swarm
so
on
and
so
forth.
And
these
are
just
all
the
projects
that
actually
have
an
explicit
dependency
on
the
grpco
project.
B
Like
I
said
earlier,
one
of
the
common
things
is
to
be
able
to
pull
something
like
a
bill's
apology
or
the
kind
of
correct
ordering
had.
Indeed,
we
were
using
this
to
kind
of
do
things
like
automatically
rebuild
the
world
for
all
of
the
dependencies
of
g
level.
B
B
And
you're
doing
that,
like
you,
have
to
parallelize
things
to
some
extent,
and
so
we
built
a
tiered
component
in
here
which
does
still
return
the
correct
ordering,
but
for
things
that
fall
in
the
same
level,
those
components
can
actually
build
be
built
at
the
same
time.
So
won't
we
get
this
response
back,
not.
A
A
And
would
you
be
able
to
to
go
back
and
repeat
a
few
things
that
the
last
bit
that
you
that
you
shared
because
you
were
breaking
up
and
it
was
it-
wasn't
clear
what
you
said.
B
Oh
sure,
let
me
turn
off
my
video
first.
So
that
way
we
don't
have
it
happen
again.
Okay,
so
backing
up
a
little
bit.
B
So
the
the
one
of
the
early
use
cases
for
this
project
was
like
upgrading
the
java
spring
library
across
you
know
several
thousand
repos
and
when
I
had
initially
kind
of
went
down
to
do
that
doing
things
one
by
one
wasn't
gonna
be
enough,
and
so
I
had
to
build
in
kind
of
this
concept
of
a
tiered
topology
which
uses
the
same
correct
ordering
as
kind
of
your
topological
sort,
but
when
things
fall
on
the
same
tier,
that
is,
when
things
have
no
incoming
dependencies,
they're
able
to
kind
of
be
built
together.
B
So
we
guarantee
things
that
are
like
within
this
tier
have
no
conflicts
with
one
another
and
could
be
built
be
built
in
parallel
same
thing
here,
so
anything
inside
of
this
tier
we
can
build
in
parallel,
but
that's
kind
of
some
of
the
more
like
original
use
cases.
I
think
some
of
the
ways
that
the
system
has
evolved
more
recently
has
been
interesting
kind
of
from
like
an
open
source,
program's
office
perspective.
B
Presentation,
a
few
pieces
of
technology
that
we
do
use
from
the
grpc
community
grpc
go
pretty
heavily
as
well
as
grpc
node,
there's
a
few
things
that
I
kind
of
forked
off
and
did
on
my
own
in
the
node
community.
Just
because
it's
been
harder
to
well
one,
it's
it's
it's
only
one
of
my
services,
so
it's
not
like
the
bulk
of
functionality
and
I'm
able
to
kind
of
implement
in
a
common
way.
B
It's
kind
of
like
the
oddball,
and
so
part
of
me
is
like
not
sure
how
to
contribute
some
of
that
back.
The
other.
The
the
other
projects
that
I
pull
from
in
the
ecosystem
are
the
gateway
project
which
provides
kind
of
a
rest
api
translation
for
the
functions
that
are
supported
over
rest.
It's
not
the
recommended
way.
I
go.
We
usually
just
tell
people
to
use
the
grpc
interface,
because
there's
kind
of
good
enough
support
for
load
balancers
these
days
that
you
don't
have
to
be
as
cognizant
of
the
http
one
downgrades.
B
I
also
use
the
prometheus
and
middleware
projects,
and
then
we
used
to
use
the
the
healthpro
ones,
some
of
the
projects
that
I've
been
kind
of
working
on
in.
In
addition
to
this
is,
I
started
a
grpc
jsonnet
library,
with
a
bunch
of
kind
of
common
metrics
that
come
from
the
grpc
prometheus
monitoring.
B
B
This
is
that
dashboard
that
I
was
just
talking
about
so
really
pulling
all
the
dash
all
the
metrics
that
I
could
find
under
one
single
view.
The
things
that
are
harder
to
see
are
at
the
bottom
is
that
request,
durations
at
90th,
95th
and
99th
percentiles,
and
then
that
same
library
was
able
to
be
used
to
be
to
like
build
one
of
the
dashboards
that
I
have
for
this
project
so
being
able
to
like
reuse,
some
of
those
pre-built
metrics
and
graphs,
without
needing
to
sit
down
and
write
them
all
for
for
that
project.
B
So
some
of
the
future
works
that
I
have
for
this
is
to
continue
working
with
open
source
program
office
offices
to
iterate
on
the
solution.
I've
been
working
really
heavily
with
dwayne
o'brien
from
indeed
even
kind
of
after
leaving
to
kind
of
make
the
solution
a
lot
more.
A
lot
better
and
a
little
bit
more
ubiquitous.
C
A
A
A
Okay,
maya,
can
you
hear
me.
A
Okay,
it
sounds
like
we're
having
a
some
breakup
issues
with
your
with
your
audio
feed.
Sadly,
but
I
think
we
were
all
able
to
listen
up
to
the
part
that
you
were
working
after
living
with,
indeed
on
making
this
more
usable
and
applicable
to
to
other
programs.
If
I
got
that
right,
oh,
I
think
I
think
maya
left.
A
B
I
am
in
the
process
of
upgrading
my
home
network,
so
I'm
hoping
this
no
longer
happened
in
like
three
months.
That
was
more
or
less
the
end
of
it.
It
was
if
you
all
wanted
to
get
started
like
feel
free
to
reach
out
to
me.
I
can
kind
of
help
point
you
the
right
way,
but
also
like
happy
to
answer
questions
now.
A
C
Hi
maya,
I'm
sheena,
I'm
on
the
grpc
team
superstars
team.
She
her
pronouns.
The
presentation
was
cutting
out
a
lot
in
the
beginning,
so
I
kind
of
missed
the
places
where
you
were
using
grpc
as
client
or
server,
and
what
information
you
were
getting
when
you
were
doing
your
breadth.
First,
research.
B
So
I'm
doing
the
full
stack
end
to
end
is
grpc,
so
that
includes
from
like
the
the
only
case
that
isn't
is
like
when
I'm
talking
to
the
database.
So
that's
just
either
like
the
mysql
or
postgres
protocol,
but
kind
of
from
the
the
service
layer
back
to
the
client.
So
the
command
line
tool
that
I
have
in
place
actually
uses
grpc
instead
of
going
through
rest
but
yeah.
The
information
that
I'm
getting
back
from
kind
of
like
a
breath
first
search,
is
that
that
iteration
of
dependencies.
B
So
if
you
were
to
think
about
it,
like
all
of
your
files,
say
like
I
need
x,
y
and
z
to
be
able
to
work
a
very
common
problem
is
I
want
to
take
that
and
invert
it
right,
like
who's
using
x,
who's
using.
Why?
And
so
the
system
really
enables
you
to
invert
that
really
quickly.
So
in
that
that
example,
there
of
like
who's
using
grpz
go,
we
were
able
to
see
everything
from
like
xcd
to
cockroachdb
to
the
test
so
on
and
so
forth,
and
so
yeah.
B
B
I
spent
an
hour
trying
to
get
a
gke
cluster
up
in
them
up
and
running
like
the
morning
after
and
kind
of
gave
up
on
that.
So
we'll
we'll
see,
I'm
trying
out
I'm
to
try
out
scale
way
tonight
and
we'll
see
how
that
goes.
C
A
A
Okay,
so
I
think
I
am
going
to
break
the
rule,
the
the
big
group
into
smaller
rooms
for
discussion.
Let
me
see
if
I
can
do
that
properly
here.
C
So
I
have
a
quick
question
for
maya.
C
So
did
you
consider
anything
else
along
with
grpc
any
other
technologies
that
you've
compared
to
see
how
it
works.
B
Yes
and
no,
like
I've,
been
pretty
heavily
on
this
side
of
the
world
since,
like,
like,
I
said
like
I
worked
on
boxcars,
so
I
was
very
familiar
with
things
like
thrift
and
a
lot
of
the
alternative
solutions
that
were
out
there
at
the
time,
and
one
of
the
kind
of
one
big
draws
to
grpc
was
the
the
ability
to
kind
of
have
this
fully
duplexed
stream
at
my
kind
of
disposal,
at
least
when
it
came
to
kind
of
being
able
to
do
we'll,
say
like
arbitrary
protocols
right.
B
So
one
of
the
other
things
that
I
was
look
that
I
had
kind
of
played
around
with
was
like
how
easy
is
it
for
me
to
implement
something
like
paxos
using
grpc
versus
using
you,
know,
thrift
or
something
else
and
like
what
was
kind
of
the
overhead
with
each
of
those?
And
so
I
I
don't
know
I've
I've
been
on,
like
I
said,
I've
evaluated
a
lot
of
things
and
looked
at
a
lot
of
things.
In
the
end,
I
think
I
wound
up
with
grpc,
because
it
was
the
thing
I
had.
B
A
lot
of
expertise
in
like
boxer
was
proto
buff-based,
and
so
it
was
a
very
natural
transition
from
box
start
to
grpc
and
then,
in
addition
to
that,
I
was
already
really
well
from
like
very
familiar
with
http
2
and
the
underlying
spec,
and
so
it
was
a
pretty
natural
transition.
C
A
It's
okay.
I
think
we
got
most
of
it.
I
I
I
don't
have
the
ability
I
just
realized
to
break
out
into
rooms,
because
I
apparently
am
not
the
host,
as
I
said
earlier,
but
I
thought
maybe
we
could
have
more
of
a
good
conversation
or
discussion
a.
I
thought
that
one
topic
of
interest
could
be
potentially
a
kubecon
north
america
taking
place
really
soon.
Are
there
any
have
any
of
you
submitted
any
sessions
that
focus
on
grpc.
C
C
Yeah,
I'm
I'm
making
a
I'm
giving
a
talk
on
grpc
and
proxy
last
service
matches
about
on
coupon,
and
I
can
send
a
link
here
if
anybody's
interested.
A
C
C
Yeah,
so
this
will
be
about
the
new
service,
the
new
service
job
proxy
last
service
message
for
the
inside
trpc.
That.
A
A
A
B
And
I
know
that
I
had
more
or
less
like,
given
up
on
them
after
I
think
it
was
like
that
all
I
did
one
like
way
back
earlier
in
the
year
I'm
just
like,
and
if
I
want
to
do
this
I'll
just
record
something
and
put
it
on
youtube.
So
I
don't.
I
don't
know
I've
thought
about
some
for
next
year.
B
A
Yeah
I
found
that
sometimes
more
focused
events
tend
to
have
more,
I
mean
outcomes
more
aligned
with
with
what
the
project
contributors
are
are
looking
for.
So
that
makes
sense
great.
So
anybody
else
would
like
to
to
like
share
any
other
topic
that
you
would
like
to
discuss
as
a
community
for
grpc.
A
C
I
put
something
in
there.
I
think
everybody
here
is
at
this
point,
aside
from
maya
on
the
grpc
team,
but
I
put
something
in
the
notes
about
there's
a
plan
to
migrate
the
website
to
a
doxy
template
which,
if
you're
familiar
with
like
the
kubernetes
website
and
a
couple
of
other
websites,
are
using
it.
So
I
just
put
it
there
just
for
people
to
see
and
just
be
aware
that
it's
a
thing
that
is
likely
going
to
happen.
It
is
not
going
to
look
different.
C
I
know
we
are
tired
of
redesigning
a
website,
but
this
is
part
of
patrice's
work
with
docs
and
trying
to
get
things
better.
So
I
just
wanted
to
call
it
out.
I'd
asked
him
to
you,
know
kind
of
put
the
proposal.
I
didn't
feel
like
we
needed
to
do
a
full
grfc,
but
you
know
to
just
do
kind
of
a
similar
proposal
for
people
to
take
a
look
at
and
see
so
the
links
in
there
if
you're.
If
you
are
interested.
C
So,
are
we
planning
to
do
this
on
a
monthly
basis
or
what's
the
frequency
going
to
be.
A
The
meetup
yes
on
a
monthly
basis,
and
I
am
going
to
share,
let
me
see
if
I
grab
the
right
link,
I'm
going
to
share
a
survey
because
I'd
love
to
hear
your
feedback
and
if
you
have
any
ideas
of
things
that
you
would
like
to
add
to
the
community
meetup,
I
would
love
to
hear
about
that
as
well
and
just
yeah.
A
Let
us
know
how
you
how
you
liked
it
and
again,
if
you
have
something
that
you
would
like
to
demo,
please
please
do
reach
out
to
me
or
add
it
to
the
agenda
dog
and
I
I
will
be.
I
would
love
to
schedule
some
other
presentations.
So
the
idea
is
to
do
this
once
a
month.
C
Yeah,
I
think,
were,
if
you
didn't
see
yet,
apparently
the
grpc.io
mailing
list
got
banned,
so
I
think
that
impacted
some
of
the
calendar
invites
for
this
one
but
yeah
once
we
get,
you
know
more
of
a
consistent
routine
going.
Hopefully
we'll
get
more
of
that
community
folks,
you
know
taking
part
in
scheduling
demos
and
things
like
that.
C
C
A
Bathroom
great
awesome,
so
I
think
I
am
going
to
post
the
recording
now
and
you
won't
be.