►
From YouTube: Magento Architectural Discussion -- October, 23, 2019
Description
* Asynchronous image resizing
* Multi-service architecture details
* Wishlist GraphQL schema
* GraphQL schema for EAV attributes metadata
* Introduction of enums
* Adding dependencies on new packages (libraries) in patch releases
* graphql cart API doesn't work across multiple devices & once logged in we need to import products from guest cart to customer
A
B
I
mean
that'd,
be
great
well
be
nicest
for
you
know,
for
for
in
the
API
calls
to
just
send
the
URLs
that
are
already
pre,
adjusted
to
Magento
specifications,
so
the
images
are
hosted
outside
of
Magento
I
know
this
may
not
be
exactly
the
same
topic,
but
I
wonder
if
both
solutions
can
be
supported.
Somehow.
B
That'll
conformed
and
so
that
in
the
eighth
I
guess,
the
motivation
here
is
of
what
we
are
trying
to
save
is
the
the
device
right
so
today
in
the
catalog
API
and
we
have
to
send
the
entire
image.
You
know
all
the
logos,
the
the
images
for
the
carousel
and
all
of
that
you
know
which
is
base
64
encoded
in
inside
the
JSON
payload
right.
Obviously,
that
makes
a
payload
it's
pretty
big
and.
D
B
Adds
to
the
you
know
the
overall
network,
I/o
costs
and
all
there
are
eight
of
us
and
so
forth.
So
the
suggestion
what
would
be
really
nice
it
just
sent
URLs
and
basically
a
service
outside
of
Magento,
will
serve
those
images.
Even
it
could
be
CDN
and
all
that,
but
it'll
be
it'll,
be
resized
and
you
know
to
all
the
Magento
specifications
and
all
the
all
the
API
would
do
is
a
version
of
the
catalog
API,
which
will
only
accept
URLs
right
and
theory.
B
A
So
maybe
I
will
I
will
talk
to
you
later
when
I
will
get
when
I
will
find
some
time
finally
to
work
on
proposal
about
media
and
we
can
discuss
the
requirements
in
more
details
and
what
you
want
to
have
looks
like
it
sounds
pretty
clear
for
me,
but
I
can
get
back
to
you
and
I
think
the
the
proposal
that
we
are
looking
at
still
makes
sense
and
we
can
implement
it
and
it
will
be
useful
for
now
and
it
can
be
done
in
two,
the
three
release.
While
would
you
propose.
C
A
And
they
think
this
command-line
tool,
anyways
it
can
be
kind
of
extracted
from
magenta
cell-
can
be
considered
as
default
default
tool
for
assigning
image
as
well.
You
can
use
something
else.
It's
important
that
my
job
itself
doesn't
do
fighting
on
the
fly.
Okay,
so
I
just
don't
want
to
make
to
take
more
time.
I
was
I.
Guess
everybody.
A
E
D
D
Paas,
it
makes
sense
to
that
diagram
and
I
all
just
focus
to
some
structural
diagram,
so
we
have
clients
on
the
left
and
we
start
from
gateway
which
accepts
varies
from
the
client
and
it's
proxies
unto
some
services
in
the
internal
network.
So
you
can
see
that
this
is
bounded
or
private
network
and
all
external
calls
must
go
through
start
on
gateway.
Then.
F
E
D
D
There
are
also
dedicated
authorization,
services,
token
services
and
syndication
services.
So
now,
let's
look
in
more
details
into
each
of
these
and
what
responsibilities
of
these
components
are.
So
we
have
clients,
clients
are
basically
browsers
or
some
other
stuff
on
coins
and
responsibilities
of
the
client
is
to
store
the
context
say
if
user
switches,
language
or
currency,
it
is
the
responsibility
of
the
browser
to
make
sure
that,
in
the
matter
of
the
state
and
numbers
the
choice
with
the
customer,
it
also
needs
to
store
customer
context
token
and
an
authentication
token.
D
If
customer
is
logged
in
and
then
it
has
to
send
all
this
data,
like
all
these
parameters,
with
each
request
in
headers
and
by
the
way
all
of
these
like
tokens
and
store
context,
all
of
them
should
be
transferred
and
boxes
with
all
holes
in
the
system
so
in
store
from
gateway
against
Heather.
It's
responsible
for
sending
them,
but
they
took
it
away
and
then,
if
it
away
need
something
from
Graham
kill.
D
G
E
D
Authentication
gateway,
it
is
also
responsible
for
checking
cash
and
cash
in
responses,
so
it
will
try
to
see
if
the
specific
query
is
already
cashed
like
responses
over
the
cash.
If
yes,
then
it
will
just
return
it
back
to
the
client.
If
no,
then,
let's
assume
it
was
really
which
we
desire
desire
to
prostitution
be
doubly
so
in
this
case
that
you
brought
to
Italy
and
I.
D
Just
wanna
know
that
this
photography
is
different
from
Italy
that
we
have
right
now.
So
this
idea
is
based
on
server-side,
rendering
versus
client-side
rendering
wishes
current
basis
of
Italy.
So
in
in
this
approach,
pdaboy
application
will
be
responsible
for
rendering
HTML
on
server-side
and
that
it
will
be
react,
application
which
we
shall
be
returned
to
the
client
eventually,
and
the
browser
will
continue
working
with
each
other
product
application
and
continue
making
queries
directly
to
a
graphical
action.
D
D
To
get
the
data,
it
will
sound
query
all
the
way
to
start
from
gateway
again
so
you'll
be
treated
as
external
query.
It
is
important
to
know
that
it
should
go
through
external
to
external
network
interfaces
because
it
should
not
matter
for
direct
application,
whether
it
is
fetching
data
while
being
on
the
server
side
or
in
the
browser.
So
one
initial
hole.
It
will
fetch
data
during
server-side
language.
However,
when
the
application
is
already
rendered
and
the
client
browser
receives
HTML
result
in
HTML
is
direct.
D
Let
the
draft
application
to
make
queries
directly,
Ajax
queries
directly
to
grub
to
engine,
and
that's
why
they
will
go
through
the
same
stuff
from
gateway
and
that
that's
actually
why
it
is
important
to
ten
queries
through
the
same
page.
So
the
query
for
data
or
product
data
goes
again
to
whom
the
from
gateway
in
this
case
it
is
rounding.
It.
E
D
Graphical
engine-
and
we
will
probably
protein
to
be
pretty
simple.
If
query
has
rock
your
front
name
your
name,
it
will
brought
it
to
rock
collection.
If
it's
something
else
and
probably
to
erotic
capital
A
and
for
syndication,
we
will
figure
out
again
some
very
specific
rules,
all
which
will
be
Pacifico
for
graph
key
or
specific
rule
for
syndication
gateway,
and
everything
else
goes
to
fit
a
blade
on
graph
your
site.
D
Catalog
cell
phone
service
for
different
products
may,
for
example,
require
customer
segments,
customer
group
or
current
store
code,
and,
let's
assume
you
just
hit
the
browser
or
hit
my
channel
URL
from
search
engine,
it
is
possible
that
you
don't
have
any
context
and
it
will
be
just
anonymous.
Query
is
no
specific
context
affected
in
this
case.
The
proposal
is
to
put
logic
for
query
enrichment
in
graphical
engine
and
what
will
happen
like
rokkyo
engine
parses,
the
query,
and
then
it
tries
to
translate
based
on
some
configuration,
XML
configuration.
D
It
tries
to
translate
this
query
into
calls
to
start
from
the
API
in
certain
services.
Some
data
may
be
mission
and
then
it
will
have
rules
for
populating
all
it
which
increase
with
some
specific
arguments,
so
it
will
be
the
configuration
in
which
was
which
will
say
what
arguments
can
be
enriched
and
what
is
the
enrichment
source?
D
Additionally,
there
will
be
rules
on
how
to
perform
fallback.
For
example,
some
enrichment
data
can
already
be
cached
here.
If
it's
not
cached,
then
we
will
try
to
take
it
from
authentication
token.
Let's
say:
if
it's
customer
ID,
we
will
try
to
get
it
from
syndication,
but
actually
we
go
in
this
specific
case,
we'll
always
get
it
from
patient.
D
So
then
listen
clearly
I
was
stalled
from
service,
which
is
basically
our
service
contract
responsible
for
certain
scenarios.
It
generates
response
and
we
go
all
the
way
back.
Who
stole
from
Gateway
and
response
gets
back
to
be
the
GUI
application.
Then
it
is
ready
to
render
the
page
HTML
page
with
draft
application.
It
sends
response
back
to
the
client,
the
problem
and
as.
D
E
D
D
Additionally,
there
are
cases
when
customer
is
indicated
and
what
will
happen
in
this
case
clear
abroad,
towards
education,
gateway
and
then
customer
has
to
pass
credentials
and
credentials
will
eventually
get
to
syndication
service
and
the
syndication
service
can
be
as
simple
and
storage
of
customer
possible
caches
world
and
customer
accounts
and
customer
ID.
So
it
will
be
similar
to
what
we
have
right
now,
Magento
by
default
and
by.
D
D
We
should
be
delivered
all
the
way
to
the
browser,
and
then
the
browser
is
responsible
for
sending
or
client
application
is
possible
to
send
them.
Second
query:
to
get
customer
contacts
talking,
it
will
be
sent
to
generic
graphical
engine
and
then
calculation
will
identify
the
necessary
parameters
which
need
to
be
put
in
the
context
by
default
in
open
source.
It
will
be
just
customer
group
in
commerce
addition.
D
It
will
also
include
customer
segment
and
then
it
will
send
clear
to
token
service,
with
all
data
to
be
included
in
the
token
and
token
service
will
generate
token
and
to
be
sent
back
to
the
client.
So
what
we
need
to
tokens
there
is
actually
the
reason
for
that
in
question.
Where
even
could
be
couples
a
single
token,
and
it
includes
customer
ID
customer
group,
it
will
be
necessary
to
parse
this
token
and
extract
customer
group
to
generate
each
key,
because
customer
group
is
usually
part
of
scopes
and
it
needs
to
be
included
into
dashiki.
D
However,
customer
ID
is
obviously
have
to
be
excluded
from
cache
key,
because
then
you
will
get
one
cache
entry
per
user,
which
is
obviously
not
the
one
who
have
one
server
side,
and
if
you
have
two
tokens
syndication
token
will
always
only
be
used
for
authentication
purposes
and
customer
context.
Token
will
be
used
for
two
purposes.
One
is
for
cash
key
and
some
columns
molded.
D
Even
though
customer
group
and
customer
segments
value
C
will
be
encrypted
and
they
will
not
be
visible
for
the
user
for
sensitivity
reasons,
it
will
still
be
possible
to
use
it
for
crash
key
generation
and
then,
when
it
arrives
to
a
graphical
engine,
cranking
engine
to
be
able
to
use
those
customer
group
and
customer
context
values
from
token.
So
it
will
verify
signature.
D
E
D
There
is
also
a
citation
service.
We
should
be
used
by
independent,
like
individual
dolphin
services.
So,
basically
token
service
will
be
responsible
for
understanding
what
ACL
permissions
should
be
checked
to
give
response,
and
it
will
be
taken
customer
token
and
a
customer's
indication
token,
and
it
will
understand
what
usually
so.
Do
you
understand
what
customer
ID
is,
and
it
knows
what
required
ACL
permissions
for
this
specific
query,
and
it
will
just
ask
us
relation
service.
D
D
D
Didn't
even
cover
it
most
of
the
proposal
here.
I
would
also
like
to
mention
that
all
components
should
be
scalable
and
most
of
them
should
be
extensible.
So
we
need
to
make
sure
that
it
really
that
the
main
services
list
of
supported
authentication
mechanisms
like
simplification,
service
authorization,
service
and
graph,
your
server
itself,
all
of
them
must
be
extensible
and
the
only
part
which
I
believe
it
should
not
be
extensible
the
moment
or
does
not
require
sensibilities,
total
gateway.
D
Additionally,
on
the
top
of
that
on
the
top
of
the
diagram,
you
can
see
that
they
should
be
able
to
route
our
village
to
search
party
data
and
the
third
party
ApS
could
be
our
cloud
sauce,
for
example
like
Magento
sauce,
like
order
management,
etc.
So
all
these
queries
may
go
through
swap
store
from
Gateway
and
then
go
to
third
party,
and
there
are
also
couple
open
questions.
D
Whether
Weda
should
be
supporting
multi
service
mode,
so
denham
is
probably
not,
but
it
is
possible
and
the
reason
why
I
do
it.
It
should
not
be
supported
because
of
increasing
complexity
and
probably
degraded
performance
due
to
additional
cost
during
request,
processing
and
one
question
not
directly
related
to
this
proposal,
but
independent
on
on
this
decision,
whether
dolphin
services
should
be
able
to
enrich
queries
himself
or
we
should
still
have
it
a
responsibility
or
clunky
or
engine.
D
So
currently
this
responsibility
or
grab
to
engine,
but
it
would
be
nice
to
remove
it
from
here
and
simplify
graphical
engine
itself,
to
make
it
mostly.
But
in
this
case
it
seems
like
it
should
go
to
store
phone
service
and
then
dolphin
service
should
make
some
arguments
scope,
arguments
optional,
and
if
the
value
is
not
provided,
then
it
should
be
able
to
understand
how
other
services.
D
E
So
what
I
want
to
discuss
is
graph
QL
schema
for
the
wishlist
functionality.
First
of
all,
I
want
to
start
that
we
have
few
items
already
implemented.
Actually
only
one
query
is
already
implemented
is
wish
list.
It
returns
the
content
of
the
customer
wishlist.
So,
as
a
result,
wishlist
output
is
already
in
the
in
dimension.
E
E
E
E
We
need
to
decide.
We
need
to
make
some
decision
regarding
this,
and
the
second
one
is
create
wishlist
here
in
the
proposal,
I
wrote
that
this
mutation
should
return.
If
not
exist,
it
will
create
new
versions
or
if
this
list
for
customer
already
exists,
it
should
return
existing
idea
again.
This
will
work
for
single
wish
list.
E
So
for
commerce
addition
and
multiple
wishlist
functionality,
it
will
not
work
because
we
need
to
rather
create
new
mutation
like
ID,
not
create
multiple,
which
is
something
like
that,
because
in
this
case
it
will
work
with,
but
only
with
only
one
customer
wishlist
and
yeah,
probably
yeah.
Those
two
questions
about
ID
and
and
single
versus
multiple
wishlist
are
still.
I
D
G
But
yeah
we
probably
the
problem,
may
introduce
a
new
AG
for
for
this
is
the
identification
could
be
not
so
complex,
but
but
this
purpose
of
the
trading
yet
of
maybe
we
can
postpone
this
question
or
discusses
them
a
little
bit
but
I
I'm
good
with
your
proposal
how
to
handle
ID
right
now,
I
believe
it's.
It
will
be
simple
to
me
great
to
you
AG.
When
you
ready,
we
will
be
ready
to
adapt
to
your
AG.
E
G
G
G
E
E
E
G
E
D
E
D
E
C
H
D
D
Additionally
I
proposed
include
some
fields
there,
which
will
allow
to
understand.
If
specific
attributes
is
dynamic,
all
these
it
will
all
to
render
different
tabs
attributes
and
different
types
on
product
details,
page
and
additionally,
to
understand
whether
specific
attributes
should
be
used
in
advanced
search
or
product
listing
or
compare
products,
or
we
can
extend
the
definition
and
second
part
we
can
introduce
page
specific
custom
attributes
just
to
fetch
attributes
or
it
won't
search.
D
For
example,
you
just
send
the
skill
you
say:
I
want
attributes
for
a
product
compared,
and
it
should
give
you
only
attribute
metadata
for
those
as
you
switch
in
the
user.
So
that's
basically
here
and
have
any
comments
or
gosh
probably
leave
them
in
the
proposal,
because
you
don't
really
have
time
to
discuss.
Moe
I
think.
D
J
J
J
For
a
telemedicine
for
arguments,
we
would
be
able
to
get
list
of
all
possible
values
and
we
can
make
this
list
final,
but
by
making
none
class
final
30
HP
has
also,
but
it's
it's
a
libraries.
It
needs
to
be
additional
installed
and
looks
like
there
are
some
problems
of
installing
slight
variant:
HP
7
the
results,
implementation
of
of
HP
implementation
that
the
case
similar
functionality
of
the
interface.
J
J
Library,
it's
my
collapse,
PHP.
You
know
this
seems
to
be
very
like
widely
used
library,
I
did
research
and
draw
lots
of
libraries,
which
means
that
can
be
used
to
create
mount,
but
this
this
is
widely
used
and
it
used
by
some
projects
like
the
Trinity,
which,
based
on
also
some
some
some
libraries
for
peach
piston
use
this
hybrid.
J
E
J
A
J
I
J
A
C
G
J
I
J
May
be
horrifying,
the
proposal
should
be
used.
Announcer
enough,
probably
I
cannot
think
about
example,
where
we
will
have
to
use
an
arm
to
to
declare
something.
That's
a
wakeful
list
of
values,
usually
like
those
things
that
accountable,
very
short,
like
so
obvious
thing,
I
can
imagine,
is
the
list
of
recordings.
J
F
J
I
A
J
J
My
class
PHP
nom
in
in
Apache
rule
is
whether
the
question
is
whether
or
not
we
should
consider
vs.
by
percent
particle
change.
We
can
say
that
this
is
a
high
change
of
this.
Of
this
begin
we
resolved
on
August
point
is
that
if
another
extension
has
dependency
on
a
different
version
of
this
library,
potentially
it
will
be
like
there.
There
will
be
able
great
issues.
A
A
J
I
C
C
The
customer
cart
and,
in
addition
to
that,
whenever
you're,
actually
not
logged
in
you,
add
products
to
the
cart
when
you
log
in
there
is
no
other
there's.
No
similarity
of
login
grab
clothes
just
using
the
token,
but
basically
you
will
have
to
call
permutation,
which
you
will
Harry
the
guest
cart
into
customer
cart
and
you
have
the
guest
card
ID
and
it
will
return
the
cart
with,
has
already
merged
items
from
the
guests.
C
It
was
a
debate
of
whether
to
actually
separate
those
two
things
or
leave
it
into
one
mutation,
but
there's
you
know
what
sanitation?
What's
what's
the
query
in
this
case,
because
you
were
one
when
he
will
get
the
case.
The
customer?
Yes,
cart,
will
be
a
query
and
the
same
as
all
Anna's
wish
list.
If
it
doesn't
have
it,
I
will
have
to
create
one
right
and
that
will
practically
convert
itself
into
a
mutation
and
I
already
put
the
furnace
here.