►
From YouTube: Data Management for a Hybrid World That Was Easy - Jim Walker (Cockroach Labs) OSCG 2022 Spain
Description
Data Management for a Hybrid World That Was Easy
Speaker: Jim Walker (Cockroach Labs)
OpenShift Commons Gathering Kubecon EU
May 17, 2022 Live from Kubecon EU in Valencia, Spain
Full Agenda here: https://commons.openshift.org/gatherings/OpenShift_Commons_Gathering_at_Kubecon_Europe_2022.html
Learn more at: https://commons.openshift.org
A
Hello,
everybody,
I'm
gonna,
actually
get
a
bottle
of
water,
because
there's
bottles
underneath
here
but
they're
hand
sanitizer,
and
I
think
that
would
be
bad.
If
I
chose
one
of
those
hello,
everybody
sorry,
I
was
a
little
bit
late,
but
I
flew
in
yesterday
and
I
had
to
give
a
talk.
Yesterday
is
somebody
ever
given
a
talk
on
an
hour
and
a
half
of
sleep.
A
This
is
not
that
talk
by
the
way,
but
the
the
team
at
red
hat
asked
me
to
give
a
quick
talk
about
my
experience,
working
with
them
and
and
our
experience
working
with
them,
which
has
been
an
incredibly
great
partnership,
I'm
always
happy
to
get
on
stage
to
to
talk
about
red,
hat
and
kind
of.
What's
going
on
with
us,
but
first
of
all
my
name-
I
am
my
name-
is
jim
walker.
I
am
principal
product
evangelist
at
cockroach
labs.
A
I've
been
with
the
company
for
about
three
and
a
half
years
and
three
and
a
half
years
ago.
Not
many
people
knew
what
cockroach
database
was
in
fact
they
kind
of
thought
it
was
gross
and
disgusting,
whereas
a
lot
of
people
now
are
kind
of
starting
to
use
it
three
and
a
half
years
ago
as
well.
A
I
guess
about
five
years
ago
I
started
my
journey
in
this
whole
kubernetes
space
at
a
company
called
core
os,
which
is
actually
now
part
of
red
hat,
and
while
I
was
at
core
os
waleed,
I
don't
know
where
you're
at
in
the
room.
I
met
a
lot
of
those
same
people.
I
love
that
slide
with
all
the
faces
dude.
It's
like
my
favorite
slide
of
the
entire
day.
A
This
conference
is
amazing
because
of
those
people
and
people
that
build
communities
and-
and
I'm
just
I'm
so
excited
that
I
was
part
of
that
team
that
was
at
coreos
at
the
beginning,
because
you
know
kubecon
has
been
such
a
part
of
my
life
and
for
the
last
two
years
not
having
it
has
been
odd
at
best,
and
so
you
know
if
it
is
your
first
time
here,
I
will.
I
will
second
that
yo
go
be
the
dance
you
don't
have
to
be.
A
The
dancing
guy
just
join
in
with
the
dancing
guy,
because
this
is
just
a
wonderful
community
and
and
that's
why
I
present
today,
so
the
the
premise
of
of
cockroach
and
red
hat
and
openshift
and
kubernetes,
and
this
whole
thing
you
know,
I
try
to
simplify
these
things
for
sales
people
all
the
time.
Are
there
sales
people
in
the
room
if
you're
a
salesperson
in
the
room?
A
Just
if
you
could
hold
your
okay,
we
got
one
of
them
all
right,
I'm
going
to
disparage
sales
people
a
little
bit
here
on
stage,
but
you
guys
you
you're
good.
You
make
money
and
commissions
and
all
this
stuff,
but
I
have
to
simplify
things
for
sales
people
sometimes,
and
sometimes
we
have
to
simplify
things
for
our
managers.
Sometimes
we
have
to
simplify
things
for
developers
and
that's
really
what
the
theme
of
this
conversation
is
right.
A
A
I
have
ubiquitous
infrastructure,
I
better
start
automating
all
that,
because
this
is
super
inefficient,
because
I
need
millions
of
resources
to
actually
you
know
handle
all
these
things
right,
and
so,
when
I
talk
about
these
things
with
my
sales
people,
I'm
like
hey
man,
look
at
like
this
is
really
what
this
stuff
does.
It
allows
us
to
actually
deliver
on
some
of
these
things.
Oh
look
there's
one
of
these
things.
Awesome.
Okay,
great,
not
gonna
work.
A
So
how
do
you
explain
kubernetes
to
people
so
back
at
coreos
go
back
five
years
I
had
to
explain
these
things,
so
I
took
my
slides
that
I
used
at
our
very
first
sales
kickoff
to
explain
what
kubernetes
does
to
people.
Okay.
A
There
was
a
bunch
of
slides
before
this,
because
you
know
sales
people
didn't
really
understand
what
monolith
to
microservices
meant
and
what
a
container
was,
and
I
had
to
actually
kind
of
understand
what
a
god
forbid,
don't
tell
them
what
a
namespace
is,
but
you
can
actually
break
things
down
into
what
a
container
is
right
and
you
get
to
say,
hey
look
at
containers.
Are
these
things
that
you
know
when
we
used
to
build
software?
A
I
had
a
cd-rom
that
was
for
windows
and
I
had
a
cd-rom
for
mac
and
I
had
all
these
different
versions.
We
don't
need
that
anymore.
You
just
have
kind
of
one
version
you
just
deploy
everywhere,
which
is
really
cool.
It's
super
portable
and
awesome
right.
The
entirety
of
this
is
predicated
on
that
sales.
A
People
get
that
right,
but
if
I'm
going
to
actually
deploy
these
things
and
have
them
running
on
servers
in
these
huge
rooms,
with
lots
of
things,
who's
controlling
all
that
what
I'm
going
to
have
like
15
people,
logging
into
each
machine
or
standing
by
each
machine
and
managing
all
these
things,
that's
all
the
kubernetes
does!
That's
it.
A
It's
really
as
simple
as
that
it
automates
all
this
operations
right,
and
so,
if
we
start
there,
it's
pretty
simple
now
what
the
red
hat
team
is
doing
is
saying:
let's
make
it
even
more
simple
right:
let's
make
it
let's
package
it
so
that
there's
ui,
let's
packet
it
so
there's
this
whole
like
network
of
operators
and
things
so
like
all
these
different
pieces
can
come
together
right.
So
it's
really
the
next
generation
of
simplification
of
kubernetes.
A
Now
back
in
the
day
when
I
you
know
the
core
rest
days,
I
struggled
because
man
five
years
ago,
managing
kubernetes
was
nothing
short
of
a.
I
don't
know
it
was
in,
but
did
anybody
do
it
five
years
ago
was
nothing
short
of
a
nightmare.
It
was.
It
was
pretty
complex,
pretty
difficult
right,
so
we
built
something
back.
Then
it
was
called
tectonic
right.
A
A
lot
of,
what's
in
tectonic,
was
actually
carried
on
into
what's
going
on
in
openshift
today
and
a
lot
of
those
same
engineers
right,
and
so
it's
really
about
simplifying
these
things
and
making
it
easier
for
the
enterprise
to
adopt,
because
you
know
look
at
ultimately.
This
thing
does
one
thing
right:
there's
there's
two
parts
of
kubernetes:
there's
a
control
plane
and
these
little
pods
anybody
ever
seen
that
movie
avengers.
A
You
know
where
the
big
ship
is
up
in
the
sky
and
then
all
these
machines
come
down
and
wreak
havoc
on
on
on
grand
central
station.
That's
kubernetes
man,
there's
like
the
mother
ship
and
then
there's
all
these
little
guys
and
if
you
kill
the
mother
ship
you're
going
to
kill
the
whole
thing,
honest
well,
there's
actually
redundancies.
Now
for
that,
okay,
sales,
people,
it's
pretty
easy
to
understand.
Right,
like
I
got
it,
avengers
it's
cool
right!
Well,
there's
a
state
in
this
thing
called
kubernetes
in
the
control
plate.
A
It's
called
xcd
scd
is
just
basically
a
database.
That's
how
you
got
to
think
about
it
right
again,
I'm
talking
to
sales
people
right,
it's
just
a
database
that
has
like
state.
I
have
these
three
different
things
that
I
want
to
do.
I
guess
that's
blue
red
and
yellow
right,
my
color
colorblindness
over
the
years
gotten
worse.
Actually,
I
think
right.
I
have
these
three
things
I
want
to
do.
One
of
them
is
like
get
account.
A
One
of
them
is
like
print
my
statement,
the
third
one
is,
you
know,
transfer
phones
to
somebody
and
it
takes
input,
and
I
have
all
these
different
servers.
I
have
different
levels
of
of
of
of
like
of
of
services,
that
I
need
to
fit
the
traffic
for
certain
things.
So
what
you
do
in
kubernetes,
you
basically
just
say,
hey,
look.
I
need
10
of
the
blue,
and
so
it
spins
up
10
of
those
across
these
physical
servers
that
are
somewhere.
That's
all
kubernetes
does
look
it.
A
I
need
eight
of
the
red
and
I
need
eight
of
the
yellow.
It's
pretty
simple.
We
get
mired
in
all
these
kind
of
complex
kind
of
considerations
and
descriptions
of
what
kubernetes
is
doing
all
the
time.
This,
I
hope,
is
one
of
the
most
simple
explanations
of
what
it
is.
I
know
probably
people
are
out
there
wow,
you
just
simplified,
like
eight
million
things,
to
make
this
work
right.
But
if
I
want
to
scale
up
one
of
those
services,
because
I
have
more
demand,
I
just
go
into
ftd.
I
go
10
great.
A
I
have
services,
it
controls.
The
control
plane
says
this
is
the
state
that
I
need
to
be
in.
Scd
is
just
managing
state
right,
okay,
so,
but
what
if
something
fails
right?
It
understands
that
all
these
pods
one
of
my
pods,
didn't
check
in.
I
better
do
something,
so
I
better
start
moving
some
things
around
so
that
I'm
going
to
maintain
state.
It's
basically
the
ultimate
like
state
guarantee.
That's
what
kubernetes
is
doing:
y'all,
okay,
the
simplest
kubernetes
presentation
of
the
entire
show,
I
presume
right.
A
Okay,
so
I
I
I
found
cockroach
database
like
I
said
about
five
years
ago,
and
so
I
was
at
core
os
and
the
ceo
of
korres,
alex
polvi,
was
going
to
get
on
stage
and
talk
at
openstack
summit
and
he's
like
jim.
We
need
an
application
to
show
on
this
thing
and
not
nobody
was
really
building
applications
and
things
to
actually
work
on
top
of
kubernetes
right
back.
Then
it
was
all
like
it
was
stateless.
It
was
ephemeral,
workloads
like
what
is
this
thing.
A
I
don't
what's
I
don't
even
know
what
stateless
means
half
the
time,
I'm
an
old
developer.
Everything
has
a
database
right.
Everything
has
state.
I
didn't.
I
didn't
really
kind
of
know
where
he
is
like
go
talk
to
my
friend
spencer,
at
cockroach,
they're,
building
a
database,
that's
kind
of
built
for
this
whole
thing
right,
like
it's
kind
of
the
same
thing,
that's
you
know,
google
did
with
spanner.
They
were
doing
on
borg
well.
This
is
like
this
is
like
that.
But
for
kubernetes
right,
it's
going
to
be
pretty
cool.
A
I'm
like
great
go
check
it
out.
Databases.
I
learned
very
quickly
have
some
pretty
interesting
challenges
when
it
comes
to
kubernetes.
If
you
just
try
to
spin
up
an
instance
of
postgres
sure
I
could
spin
it
up
in
a
single
pod,
I
could
connect
to
that
thing.
Okay,
it's
pretty
interesting!
Okay!
Well,
once
we
got
you
know,
stateful
sets.
A
We
were
actually
maintained,
persistent
volumes
underneath
that
thing
so
that
the
storage
just
didn't
go
away
right,
because
the
ephemeral
nature
of
pods,
like
it,
helped
a
whole
lot
of
things
in
this
world
right.
We
used
to
use
demon
sets
to
do
that
right,
but
stateful
sets
was
about
three
and
a
half
four
years
ago,
really
helped
the
community
kind
of
maintain
state
within
what
was
going
inside
a
pod.
A
Now
that
lit
up
a
bunch
of
databases
right
because
state
is
very
important
to
a
database,
because
all
a
database
is
is
a
layer
between
somebody,
that's
trying
to
do
something
and
some
storage
somewhere.
That
is
literally
all
it
is
it's
a
language
that
allows
people
to
store
data
disk,
that's
it
and
if
I
lose
the
disk
which
is
attached
to
a
pod.
Well,
I've
I've
actually
invalidated
the
point
of
a
database.
A
A
Basically,
it's
a
vertical
scale
at
some
point,
or
I
could
try
to
run
into
these
one
of
these
things
in
these
kind
of
distributed
natures,
but
get
the
case
that
gets
really
complex
as
well,
because
not
all
databases,
at
least
on
the
relation
side,
were
built
to
be
distributed.
They
weren't
built
for
scale
they
weren't
built
to.
You
know
this.
This
failover
thing
like
if
I
just
want
to
increase
the
state
of
this
service.
A
A
They
go
exponential
when
you
start
dealing
with
databases,
because
now
you're
dealing
with
actual
physical
storage
and,
basically
you
know
the
data,
that's
in
your
app,
which
is
probably
one
of
the
most
important
things
that
the
developer
can
is
concerned
about
right
and
so
there's
lots
of
different
challenges,
and
so
like
being
cloud
native
in
this
context,
is
actually
pretty
important.
So
when
we
talk
about
cloud
native
databases,
you
know
like
like
this
test
project
is
cloud
native.
It's
extremely
interesting
to
me
right.
What
we're
doing
at
cockroach
is
cloud
native.
A
It's
extremely
interesting
to
me
when
we
attach
that
word
cloud
native
to
something
it
actually
means
something
y'all.
It
doesn't
mean
that
I
have
an
operator
and
I
could
run
that
thing
in
a
pod
and
I
could
manage
this
thing
and
all
this
stuff.
No,
it's
the
way.
The
thing
works
is
what's
important.
It's
inside
the
architecture
of
that
that
solution,
I
don't
care
if
it's
a
database
or
a
crm
or
something
in
between.
If
it's
cloud
native,
it
means
something
it
means
it's
built
to
scale
and
it's
built
to
be
resilient.
A
It's
that
core
kind
of
description
of
what
I
said
when
I
said
kubernetes
and
what
that
is
right
and
so
to
me,
when
I
look
at
cloud
native,
it's
those
are
the
things
that
are
really
important,
especially
at
the
application
layer.
You
know,
above
all,
this
kind
of
craziness
that
we
deal
with.
So
when
you
look
at
databases
like
again,
I'm
a
shill
for
cockroachdb.
When
I
look
at
databases,
I
think
of
the
relational
database,
I
never
coded
in
a
nosql
database.
I'm
sorry.
I
left
the
document
model
somewhere
around
xml.
A
I
never
really
understood
it.
I
guess
I
was
just
built
in
a
world
of
you,
know:
relational
data
models
and
referential
integrity
and
normalization,
and
these
sort
of
things-
but
you
know
these
databases
are
really
cool.
I
get
to
build
things
really
quickly:
they're
dynamic
they're.
They
allow
us
to
do
some
things
like
the
availability,
the
resilience
sound,
familiar
right,
no
sql
databases,
but
the
power
of
the
relational
database
is
still
needed
by
our
mission.
Critical
apps
right.
A
Are
you
going
to
run
like
a
you
know,
a
financial
ledger
on
a
on
a
nosql
database
you're
not
going
to
do
that
because
you're
not
going
to
guarantee
consistent
transactions
right.
We
still
need
the
relational
database
because,
honestly,
it
is
basically
the
back
end
of
all
of
our
mission
critical
data
in
in
organizations.
However,
it
wasn't
built
to
be
distributed.
A
It
wasn't
built
to
be
cloud
native
right,
so
if
we
could
take
all
those
things
and
make
it
distributed,
make
it
elastic
make
it
automated
make
it
modern
right
for
what
we're
trying
to
do.
That's
great
well,
a
lot
of
them.
Try
to
do
that.
You're,
not
gonna!
You
gotta
need
these
complex
operators
to
actually
do
those
things
right
operator
is
just
basically
a
synthesis
of
something
that
you
all
would
have
to
do,
but
automate
it
into
a
script.
A
I
think
when
we
first
named
operators,
we're
gonna
call
them
controller
operators.
I
think
brandon
phillips
wanted
to
call
him
controllers
and
then
rob
zimski
is
on
the
openshift
team.
As
a
product
manager,
rob's
awesome.
He
wanted
to
call
them
controller
operators
and
we
ended
up
calling
them
operators,
because,
ultimately,
that
is
exact.
That's
all
they're
doing
they
aren't
controlling
they're,
doing
your
operations
for
you,
and
you
need
these
complex
things
to
actually
make
these
things.
Work
in
these
complex
environments,
for
most
of
the
databases,
so
cockroach
combines
all
these
things.
A
I
think
you
know
where
I
was
headed
in
this
whole
thing,
and
so
how
do
we
do
that?
First
of
all,
this
is
a
relational
database
so,
like
I
said,
referential
integrity
secondary
indexes
all
the
kinds
of
worlds
of
inner
and
outer
joins
and
all
the
things
you
want
to
do
materialize
views
everything
you
would
expect
out
of
postgres
right
wire
compatible
with
postgres
the
same
sort
of
things.
You
would
want
to
do
in
that
environment,
hey
jim,
what
about
stored
procedures?
Well,
do
you
want
to
do
store
procedures
in
a
distributed
environment?
A
I
love
asking
this
in
a
in
a
crowd
where
people
get
under
get
distributed
systems
in
kubernetes,
because
it's
a
little
bit
more
straightforward.
Does
it
make
sense,
or
would
you
just
basically
take
stored
procedures
and
re-architect
that
as
a
microservice
and
have
it
controlled
by
the
control,
plane
and
kubernetes?
Doesn't
that
make
sense
for
us
we
feel
stored
procedures
are
an
anti-pattern.
A
I
think
we'll
call
it
distributed
data
functions,
though,
let's
actually
make
it
something:
that's
valuable,
let's
not
take
a
legacy
past
and
just
basically
fork
it
over
and
live
in
this
new
world,
and
that's
what
I
mean
by
cloud
native,
rethinking
how
you
actually
build
in
the
application
itself,
not
just
the
infrastructure.
What
we're
all
dealing
with
is
service
meshes
and
api
discoveries
and
kubernetes,
like
literally
there's
a
lot
more
there's
another
layer
that
developers
really
struggle
with
and
as
isvs.
A
It's
on
us
to
basically
make
sure
that
this
stuff
is
cloud
native,
because
this
is
what's
going
to
light
up
everything
that
we're
all
working
on
right
so
but
make
it
familiar.
It
should
be
relational
scale
and
cockroach
is
pretty
easy.
Spin
up
a
node
pointed
at
the
cluster,
and
you
have
both
horizontal
and
vertical
scale
vertical.
You
just
have
more
computation
horizontal.
A
You
don't
have
to
do
any
sort
of
manual
sharding
in
your
application,
which
is
an
absolute
nightmare,
but
we
can
scale
beyond
just
say
a
single
data
center
or
in
this
case,
can
you
scale
a
database?
Can
you
have
a
single
logical
database
that
spans
across
multiple
kubernetes
clusters,
when
I
saw
this,
I
actually
could
this
this
is.
This
is
the
next
thing
I
couldn't
unsee
deploying
a
database
in
a
single
cluster
is
fairly
straightforward.
Right,
like
I,
I
just
talked
about
these
things.
A
What
if
I
want
a
single
logical
database,
that's
actually
spanning
multiple
different
regions,
because
I
have
different
kubernetes
clusters
across
you
know
the
united
states
at
three
different
spots
so
that
any
node
in
say
us
east
can
actually
access
any
of
the
data
that's
in
us
west
or
in
the
philippines
or
in
europe
or
wherever.
You
want
to
be
right
so
being
able
to
do
that
being
able
to
scale
beyond
just
the
single
data
center
into
what
you
really
want
to
do.
Can
I
federate
at
the
data
layer
as
opposed
to
federating
all
the
clusters?
A
I
love.
What's
going
on?
Well,
sig
fed
used
to
be
like
this
really
interesting
space.
It's
really
difficult
to
federate
clusters.
What
if
we
move
that
up
into
the
database
layer
and,
let's
logically,
do
it
there
and
that's
exactly
what
this
is
doing?
We
can
survive
the
failure
of
an
entire
region
when
we
write
data
cockroach.
We
don't
actually
synchronize
data.
We
we
have
distributed
consensus
if
you're
not
familiar
with
what
raft
is
as
a
distributed
consensus
algorithm,
go
check
it
out.
There's
a
website
called
the
secretlivesofdata.com,
which
is
just
fantastic
to
to
help.
A
You
understand
what
raft
is,
but
we
could
do
some
other
special
things.
We
can
tie
data
to
regions
right.
So
if
you
have
data
living
in
different
clusters,
do
you
want
to
always
kind
of
move
in
between
these
clusters?
No.
Can
the
database
control
and
tie
data
to
an
explicit
location,
it's
kind
of
one
of
the
magic
things
that
we
do
in
in
cockroachdb.
So
that's
the
overview
of
kind
of
what
we
do,
but
over
the
past
couple
months
and
really
over
the
past
three
years.
A
A
I
don't
care
if
they're
across
cloud
providers
or
on-prem,
whatever
that's
hybrid
to
me,
that's
multi-cloud
and
the
two
companies
really
share
a
vision
of
what
I
believe
is
pragmatic
reality
is
that
these
things
are
not
going
to
live
in
one
spot,
and
so,
when
I
think
about
like,
like
partnering
with
companies
and
and
things
working
or
not,
it
really
starts
with
a
shared
vision,
and
I
think
you
know
working
with
the
red
hat
team.
It's
been
incredible,
and
so
over
the
last
oh
gosh,
it's
been
about
a
year.
A
I
think
the
red
hat
team's
been
working
on
or
about
six
months
a
year.
I
think
right,
they've
been
working
on
red
hat,
open
shift,
database
access,
which
is
rota.
Anybody
who
grew
up
in
the
70s
rota
just
makes
me
laugh
every
single
time.
I
don't
know
why
you
know
what
it
is
if
you
know,
but
it's
really
about
this.
A
This
remember
this
simplification
journey
I
was
talking
about
like
let's
take,
you
know,
started
way
back
in
my
world
in
tectonic,
and
that
was
open
shift
and
like
how
do
we
make
these
things
really
really
easy?
Well,
deploying
a
database
is
really
difficult
in
kubernetes,
so
how
do
I
get
this
kind
of
push
button
access
to
a
database
from
openshift
and
from
the
openshift
ui?
A
And
that's
it's
really
as
simple
as
that?
Let's,
let's
forget
about
all
these
things.
Well,
it
works
really
well
with
us
because
we're
a
cloud
native
database.
It
works
well
with
some
other
databases
too,
because
well
they
they
have
those
aspects,
but
they
also
have
operators
that
are
you
know,
red
hat.
You
know,
operator,
red
hat,
open
shift
operator
certified,
there's
a
lot
of
words,
sometimes
right,
and
so
the
red
hat
team
does
the
work
to
actually
make
sure
this
is
going
to
work
and
then
simplifying
it
for
everybody.
A
So
they
wrote
a
really
good
blog
post
that
talks
about
this.
You
could
use
the
qr
code
if
you
want
to
go
check
out
exactly
what
they're
building,
but
really
it's
kind
of
a
really
a
management
plan
for
databases
within
red
hat
openshift.
That's
the
way
I
think
about
it
and
it's
pretty
simple,
straightforward,
like
we're
really
happy
because
well
we
develop,
we
deploy
pretty
easy,
it's
it's
kind
of
like.
A
I
said
it's
push
button
and
you're
kind
of
ready
to
deploy,
and
then
it's
in
preview
right
now,
that's
the
second
qr
code
actually
goes
into
the
docs.
If
you
want
to
go
check
that
out
and
so
there's
a
little
bit
more
information
there.
So
that's
what
I
wanted
to
talk
about
a
little
bit
about.
You
know
simplifying
kubernetes.
The
way
we
talk
about
a
little
bit
about
databases
and
a
little
bit
about
our
partnership,
but
I
have
one
last
thing:
you
can
go
start
a
cluster
of
cockroaches
right
now.
A
First
of
all,
that's
me.
I'm
on
twitter
is
james.
That's
me
everywhere,
but
I'll
also
give
you
this.
This
is
like
my
one
last
thing
we
published
our
first
o'reilly,
definitive
guide
and
god.
I
was
really
happy
that
they
gave
us
a
cockroach,
because
if
it
was
like
a
lemur
or
something
that'd
be
really
weird,
but
we
got
a
cockroach
on
it.
A
So
if
you
want
to
go
check
out
and
get
a
free
book,
if
you
want
to
build
out
your
o'reilly
library,
see
that's
when
the
phones
come
up
with
qr
codes,
everybody
free
books
go
check
it
out
and
and
try
cockroach
today.
So
that
is
what
I
had
so
thank
you.
Everybody.