►
From YouTube: Magento MSI Open Demo. November 30, 2018
Description
Agenda:
- Magento 2.3.0 + MSI release
- Presentation of a Distance-Based Source Selection Algorithm by Riccardo Tempesta
Online (using Google Maps APIs) and Offline calculation of the distances between Shipping address and distribution centers (Sources).
Discussion with Product Owner regarding potential improvements and ideas.
https://github.com/magento-engcom/msi/pull/1866
A
And
today
we
will
make
you
a
presentation
so
as
as
we
mentioned
in
twitter
that
the
next
day
after
after
the
release
of
students,
we
that
all
will
start
to
work
hard
on
the
next
three
days
to
the
3.1,
and
this
is
especially
true
for
msi,
because
in
in
msi,
HD
is
not
just
for
msi.
But
this
is
true
for
all
the
core
bonds
extension.
A
So
actually,
the
main
presenter
for
today
is
Ricardo
a
pastor
who
will
make
a
presentation
little
bit
little
bit
later
today
and
he
will
make
the
presentation
of
the
brand
new
feature
which
we
already
started
to
test
and
which
we
want
to
accept
and
bring
to
the
market
as
soon
as
possible.
So
this
is
already
part
of
the
of
the
next
milestone
of
the
milestone
tree,
which
we
already
started
to
work
on
a
Maasai
Trek,
but
before
Ricardo
will
steal
the
stage
and
make
the
presentation.
A
We
will
briefly
tell
you
about
the
current
current
status
of
of
regression,
because
we
are
still
making
a
regression
to
prevent
and
avoid
any
possibility.
Some
critical
bugs
found
in
in
production
and
the
slava
will
will
will
keep
we'll
keep
you
updated
on
this
testing
so
far
feel
free
to
share
your
screen
and
describe
what
was
the
status
of
the
regression
and
what
the
status
of
quality
assurance
of
emicida
can
t
have.
B
B
B
D
Ahead,
okay,
I'm
happy
to
jump
in
there.
Everyone
and
so
Slava
has
run
through
the
current
state
of
aggression,
I'm
just
of
the
manual
testing
and
I
just
like
to
share
with
you.
Hopefully,
you
can
see
my
screen
here,
the
current
status
of
automated
coverage,
where
our
gaps
are-
and
this
is
our
first
report
in
this
style
and
I'll-
be
run
through
Thea.
This
will
be
running
for
every
demo
and
we'll
be
including
more
information
as
we
go
forward.
D
But
for
now
Slava's
talked
about
the
current
cycle
of
manual
aggression,
that's
running,
which
looks
great
and
we're
just
covering
here
manual,
aggression
from
the
last
fully
completed
run,
as
he
said,
there's
29
still
the
runs.
We're
looking
at
the
last
fully
completed,
run
to
sort
of
give
a
baseline.
So
we
can
compare
against
the
novice.
Romans
completed
looks
like
we
have
a
majority
of
passes,
there's
filled
and
skips.
This
is
from
October
1st,
so
have
been
completed
up
to
the
2/3,
released
it
within
component
breakdown.
D
This
is
we're
looking
at
where
we're
finding
the
majority
of
our
tests.
Obviously,
within
catalog
and
seals
such
as
had
Mannie
looks
for
an
eye,
but
the
automated
side,
with
his
coverage
and
gaps,
we
currently
have
142
automated
tests
and
367
manual
tests,
no
I.
We're
obviously
would
love
100%
automated
coverage
as
well,
but
where
we're
focusing
our
efforts
right
now
is
based
on
severity
initially.
So,
if
we
look
at
this
here,
our
automated
coverage
by
severity
and
in
terms
of
gaps,
we
currently
have
this
s0
figure.
D
This
blue
part
is
only
37
percent
of
the
s0
cases.
He'll
be
fully
automated.
So
that's
where
we
want
to
focus
our
effort
going
forward,
and
this
report
will
then
from
next
demo
time
we'll
identify
the
component
gaps
so
as
well
as
the
severity
where
exactly
we
have
gaps
both
in
MSI
itself
and
in
the
hip
test
coverage,
what
s
zeros
and
hip
tests,
whether
that
be
cut,
longer
seals,
that
we
want
to
push
forward
for
automation
and
going
forward
and
also
are
there
opportunities
for
automation
that
are
currently
covered
by
manual
scenarios.
D
So
we
want
to
expand
the
scope
of
automation
as
well,
so
that
we
have
as
well
as
Slava's
manual
regression
and
automate
a
test
case
that
runs
frequently
as
well
to
catch
whatever
we
can
and
be
able
to
run
per
build
and
within
our
PRS
as
well.
So
that's
a
brief
look
at
it.
For
now
we
will
have
further
information,
as
this
report
is
built
week
by
week,
but
hope
that
gives
you
a
good
idea
of
where
we're
focusing
our
efforts
and
that's
all
from
me
right
now.
Thank
You,
Igor.
C
Thanks
Tom
I'll
follow
up
with
you
on
a
few
of
those
numbers
later
from,
and
as
Tom
mentioned,
we
will
be
adding
more
and
more
metrics
here
to
to
enrich
our
reporting
right
now
we
were
battling
a
few
limitations
of
head
testing.
The
way
that
our
automated
testing
has
been
put
together,
we're
trying
to
streamline
all
of
that
and
Tom's
in
charge
of
that.
So
thank
you
Tom.
Now
we
can
proceed
to
the
demo
and
yeah.
That's
it.
E
E
Is
okay,
I
was
speaking,
but
with
mute,
so
it
was
almost
useless.
So,
as
I
think
I
mentioned
before
I'm
going
to
show
you
something
I've
been
working
on
in
the
last
weeks
and
is
the
social
selection
algorithm
based
on
this
translation,
so
I'm
going
to
share
my
screen,
it
should
be
my
desktop
number.
Whatever
yeah
should
be
this
one,
so
you
should
see
magenta
back-end
in
the
order
in
the
other
page.
E
So
actually
what
you
will
see
from
the
back
end
is
not
so
impressive
because,
as
you
may
imagine,
all
the
work
is
made
100
hood.
So
basically,
what
we
have
here
is
that
when
you
sheep-
as
you
probably
know
you
can
choose
different
well
actually,
as
far
as
now
you
you
have
just
one
slate,
so
selection
algorithm.
That
is
priority
based
what
I
did
is
to
add
a
new
one
that
is
distance
priority.
So
basically
we
will
select
our
source
depending
on
the
distance.
E
So
if
you
have
a
near
source,
it
would
be
before
another
source
that
that
may
require
more
distance
or
more
time
to
travel
actually,
and
if
you
see
now,
for
example,
this
shipment
is
for
one
order
that
he
made
in
Italy
and
custom
source.
One
is
in
Ukraine
and
custom
source
2
is
in
Italy,
so
this
is
priority
based
algorithm
if
I
switch
to
distance
priority,
of
course,
I
expect
custom
source
2.
E
That
is
the
one
in
Italy
to
be
the
first
one
and
custom
source,
one
that
displays
in
Ukraine
to
switch
after
custom
source
2.
So,
let's
see
if
it
works,
I
hope
so
yeah
it
works
so
basically
custom
source
to
that
is
the
nearer
the
nearest
is
before
and
from
the
configuration
perspective,
of
course,
this
is
the
scene
from
the
Mersenne
perspective
and
it's
very
easy
to
use.
So
you
don't
need
to
do
and
take
magic
and
I
think
strange.
It
is
not
rocket
science.
At
the
end.
E
From
the
configuration
perspective,
you
can
change
some
parameter,
so
what
I
did
is
not
only
to
provide
one
single
distance
provider
but
to
allow
the
possibility
to
use
more
than
one
so,
for
example,
now
I'm
using
Google
map,
but
maybe
tomorrow
someone
can
introduce
even
other
systems.
As
far
as
now
we
have
Google
map
and
one
offline
calculation.
I
will
show
you
what
is
later
and
you
can
even
configure
your
Google
distance
provider
by,
of
course,
adding
a
Google
API
key.
E
That,
of
course,
is
required
to
use
this
kind
of
services
and
you
can
change
the
computation
mode.
So,
for
example,
you
can
say
by
driving,
walking
or
bicycling
bicycling
yeah
I
know
it's
pretty
extreme,
but
Google
protocol
may
provide
even
working
a
bicycling
and
maybe,
depending
on
your
business,
you
may
be
even
interested
in
bicycle.
I,
don't
know
about
walking,
but,
and
you
can
select
between
distance
and
time
to
destination,
for
example.
So
you
can.
E
As
I
told
you
before,
I
used
to
be
I
created
two
different
distance
providers,
one
is
Google
map
and
another
one
is
one
of
Kryon
calculation.
So
if
you
don't
want
to
use
Google
map
you,
you
can
use
this
one
that
is
embedded
and
basically
is
it's
a
data
base.
You
don't
load
in
your
Magento
database
and
you
can
do
using
command
line.
I,
don't
know
if
you
can
see
my
console
I,
don't
think.
If
I
showed
you
just
my
window
or
my
screen,
can
you
can
you
tell
me
if
you
can
see
my
NOAA.
E
E
E
It
downloads
and
you
have
it
in
your
database,
so
you
can
compute
all
the
distance
of
line
across
these
countries
and
of
course,
you
can
add
even
other
countries.
If
you
like
it's
quite
easy.
This
is
the
only
manual
operation.
You
have
to
do.
Ok,
I'm,
going
to
now
sure
some
piece
of
code.
If
you're
interested
in.
E
Ok,
you
should
see
my
PHP
store
now
and
so
basically,
what
what
I
did
is,
as
I
told
you
before,
is
to
create
a
kind
of
distance
provider.
I
called
internally
general
reference
provider
pool,
in
which
you
cannot
even
more
than
one
now
as
I
told
you
before
you
just
app
google
map
and
offline
provider,
but
you
you're
free
to
to
extend
it
using
even
different
one
and.
E
The
cool
part
is
that
adding
this
new
distance
selection
algorithm,
we
discover
that
basically,
we
were
missing
some
extension
points
in
the
source
selection
algorithm
because
as
far
as
now,
I
don't
know
how
involved
in
your
you
are
in
developing
the
selection
algorithm.
But
currently,
all
the
selection
algorithm
is
based
on
one
object.
That
is
called
inventory.
Requests
that
before
this,
this
was
only
handling
the
products.
So
basically
we
were
missing
gold
information
about,
for
example,
the
shipping
address.
E
E
So
basically,
I
can
create
this
image
request,
starting
from
one
order
or
from
whatever
I
like
as
far
as
now
it
just
created
from
order,
but
tomorrow
you
can
even
create
from
what,
from
whatever
and
depending
on
the
lde
algorithm,
you
can
provide
different
information.
So,
for
example,
I
have
one
default
builder
for
the
priority
and
one
other
builder
for
distance.
That
basically
is
adding
the
destination
address,
so
I
created
a
more
extensible
system
for
this,
so
selection
system
and
yeah
I
think
it's
almost
here
what
they
did.
F
E
E
Okay,
you
should
see
my
screen
again.
So
what
do
you
have
here
is
something
like
this.
So
every
time
you
download
this
offline
database,
you
have
yeah
the
post
code
and
oh
wait.
You
cannot
see
here.
You
also
have
latitude
and
longitude
for
each
for
each
gear,
reference
you're
going
to
downloads
and
of
course
it's
it's
less
accurate
and
the
Google
map,
because
basically
is
checking
just
the
postcode,
as
you
were
saying
before
and
again
led
to
do
the
longitude
and
we
compute
the
distance
across
the
health
of
airspace.
E
So
is
less
accurate,
of
course,
that
google
map
that
is
computing
the
street
distance.
Another
part
I
didn't
show
you,
but
he
came
in
mind.
Just
now
is
that
when
you
define
your
source,
as
you
probably
notice
before
you
can
insert
one
latitude
and
longitude
here
and
with
this
system
I
created,
if
you,
if
you
just
clear
them
and
you
save
your
source-
is
automatically
filled
using
the
distance
provider
you
selected.
So
this
is
just
another
thing.
E
Okay,
do.
F
E
So,
as
far
as
now,
of
course,
you
have
different
performance
depending
on
the
provider.
You
select
because,
of
course,
when
you,
when
you're
using
google
map
you're
going
to
call
some
external
service
and
the
performance
may
depend
on
vary
on
various
factors,
so
it's
of
course
the
offline
calculation
is
much
faster
as
far
as
now
I
didn't
provide
any
fallback
mechanism,
but
I
did
by
intention,
because
if,
for
example,
my
business
is
very
sensitive
to
the
distance
calculation,
I
don't
want
to
give
wrong
information.
So
what
you
can
do
now
is
to
so.
E
If
you
receive
an
error,
so,
for
example,
google
map
is
not
available.
You
can
just
go
to
your
admin
panel,
let's
switch
back
to
our
offline
calculation,
but
what
I
thought
is
that
you
should
do
this
by
intention
and
not
automatically,
because
maybe
your
Google
map
service
is
not
working
for
other
problems
and
you
don't
know
which
one
is
answering
I,
don't
know
if
it
does
make
sense.
Of
course
it
was
my
choice,
but
it
depends
on
what
is
your
direction
right.
F
Now
I
understand
I
think
we
should.
We
should
think
about
it.
I
just
think
of
a
use
case
where
a
merchant
is
taking
a
large
number
of
orders
at
a
time
and
they're
dependent
on
the
that
Google
API
and
if
they
lose
that
connection,
or
it
goes
down
for
some
reason
what
they
would
do
in
that
scenario,
of
course,
they
would
have
to
have
you
know
the
the
offline
calculation.
Even
if
we
were
to
implement
a
fallback,
it
means
that
they
have
to
have
that
configured
correctly
and
ready
to
go.
A
E
Yes,
I
think
actually
that
timeout
is
well
I,
think
the
most
common
cause
of
a
Google
map
problem
may
be
the
over
usage
of
API.
So
yes,
that
may
be.
That
may
be
a
problem,
but
from
the
answering
again
about
the
performance
perspective.
Of
course,
every
single
call
is
cached.
So
if
I,
if
I
try
to
compute
two
times
the
same
distance
across
two
different
points,
of
course,
is
cached
great
and.
E
Actually,
not
cached
I
mean
talking
about
the
mature
Takeshi
mean
Teresa
registry.
So,
if
you,
if
you
run
one
single
com1,
then
you
have
to
compute
multiple
times
the
same
distance.
Of
course
in
its
ana,
it
is
in
a
private
variable.
In
a
class
I
mean
this.
Is
this
not
exactly
cached?
So
it's
right
and.
E
E
A
E
F
A
E
F
A
F
F
E
A
Actually,
I,
don't
think
that
this
is
correct,
behavior,
because,
for
example,
this
one
of
the
reason
for
example,
why
why
we
decided
to
eliminate
the
possibility
of
free
indexation
via
the
admin
panel
in
magenta
too?
So
currently
you
can
just.
You
should
run
the
Rin
taxation.
We
are
the
we're
the
CLI
command,
but
it's
not
possible
via
the
via.
A
E
A
So
my
point
was
that
we
like
merchants,
currently
behave
in
the
inner
scope
of
the
synchronous
process
running
the
source
selection
algorithm.
So
if
you
will
run
the
asynchronous
process,
that
would
not
be
intuitive
to
this
merchants
because
he's
supposed
to
get
a
result
as
soon
as
he
choose
the
particular
source
selection
algorithm.
A
So
our
UI
is
not
a
synchronous
in
this
case,
so
probably
the
best
way
would
be
just
to
throw
like
a
like
clear
exception,
a
that
we
are
not
able
to
proceed
with
computation
of
the
source
selection
algorithm.
For
some
reasons.
For
example,
you
exceeded
the
number
of
the
API
request
to
to
Google,
and
the
offline
algorithm
is
also
not
an
option,
because
you
don't
have
particular
countries
downloaded
for
this
computation.
This.
E
F
A
A
Yes,
because,
from
one
perspective,
this
can
block
some
some
operations
and
also
we
wanted
to
make
it
separate
like
make
a
separation
of
concerns,
and
we
wanted
to
like
split
some
part
of
the
application
responsible
for
the
maintenance,
the
cool
application
like,
for
example,
we
want
to
separate
the
installation
of
magenta
and
make
it
as
a
separate
application
and
don't
keep
it
as
a
part
of
magenta
the
same
as
four
or
indexation
process.
We
want
to
move
it
out
from
the
system
and
make
it
possible
just
invalidate
some.
F
A
By
the
way,
if
needed,
I
can
I
can
find
the
data,
like
you
know,
a
wiki,
because
that
was
discussed,
probably
at
the
very
beginning
when
we
started
to
design
Magento.
So
it
is
probably
in
some
architectural
discussion
and
the
architectural
documents
prepared
by
the
architectural
consume,
where
all
the
pros
and
cons
for
this
particular
segregations
described.
Yeah.
F
F
A
A
F
A
F
B
F
A
E
F
F
A
E
F
A
Thank
you
very
much
recorded
was
just
really
interesting.
Welcome
this.
Is
this
really
cool,
because
it's
like
just
just
two
days
ago,
we
made
a
release,
and
now
we
were
already
almost
ready
to
release
another
feature.
So
this
is
this
pure
feature
and
development,
and
we
we
hope
that
we
can.
We
can
make
this
brilliant
feature
part
of
multi-source
inventory
shortly,
so
it
should
be
great
and
thank
you,
Ricardo
you're.
A
A
So
thank
you
very
much
guys
for
your
time,
feel
free
to
share,
feel
free
to
join
other
meetings
and
if
you
have
any
any
questions,
just
drop
us
message
in
instructional
or
personally,
to
me
too,
eager
to
to
recorder
to
mark,
and
we
will
definitely
help
you
to
resolve
some
issue
to
answer
a
question
or
whatever.
Thank
you
very
much
and
thank
you
for
them.