►
Description
https://about.gitlab.com/handbook/engineering/incubation/real-time-collaboration/
- Message Protocol
- Editor Bindings
- Awareness UI Pt.2
A
A
We
at
gitlab
rely
on
action,
cable
as
we
are
rails,
application
and
websockets
are
implemented
with
action
Cable
in
rails,
the
problem
with
action,
cable
or
it's
not
a
problem
for
most
of
the
use
cases,
but
the
problem
case
of
like
using
crdts
and
real-time
collaboration
is
that
there
are
no
real
guarantees
for
the
delivery
of
a
message.
This
is
due
to
how
it's
implemented
on
the
server
side.
This
is
also
true.
This
is
also
due
to
the
fact
like
how
websockets
work
in
general.
A
So
in
order
to
overcome
those
limitations,
we
need
to
do
two
things.
We
need
at
least
once
delivery
guarantees
for
messages,
and
we
also
need
Atomic
and
an
atomic
broadcasting
mechanism,
which
means
we
need
to
guarantee
the
order
of
messages.
That
means,
if
I,
send
you
four
messages
in
the
order.
One
two,
three
four:
they
also
need
to
arrive
in
the
in
the
order
of
one
two.
Three
and
four.
A
This
is
doable
and
the
protocol
that
I
propose
here
is
built
on
top
of
action
cable,
so
it
just
adds
an
acknowledge
mechanism.
From
the
client
side,
it
uses
ready
streams
and
consumer
groups
to
make
sure
that
a
message
was
successfully
consumed.
A
Etc
next
topic
editor
bindings
incredibly
complex
because
we
have
a
relatively
a
relatively
sophisticated
setup
of
editors
already
on
our
page
and
we
get
even
more
editors
in
the
future.
The
current
I'm
focusing
on
what
is
going
to
be
the
future
of
content,
editing,
that's
the
content,
editor
based
on
top
on
Tip
Tap,
and
we
most
likely
will
have
a
second
editor
for
the
foreseeable
future,
which
is
the
marked
on
editor.
There
is
a
lot
of
transformation
steps,
it's
quite
unclear.
A
What
is
this
actual
source
of
Truth
and
thanks
to
the
help
of
Enrique
and
Eric's
team,
we
will
eventually
figure
out
like
how
to
do
this
properly.
I
believe
there
is
a
way
forward,
but
we
need
to
make
sure
that
we
find
the
right
constraints
without
sacrificing
the
user
experience
here.
So
that's
the
that's
the
the
key
task
and
it's
a
lot
of
work.
Obviously,
because
the
transforms
needs
to
be
written
third
point
for
this,
for
this
update
is
the
awareness
UI
part.
A
Two
I
tried
to
ship
this
once
to
the
current
issue,
page,
which
did
not
succeed
due
to
the
conflicting
projects
of
reducing
the
Clutter
on
the
sidebar
and
my
work,
and
so
I
am
working
with
Gabe,
River
and
Nick
Leonard.
To
get
this
into
the
work
items
view
work,
items
are
going
to
be
quite
different
to
how
issues
work
today,
and
they
also
have
a
bit
of
a
different
awareness,
UI,
there's
actually
two
levels
of
awareness.
A
This
is
going
to
be
implemented
as
the
next
iteration
of
the
awareness
UI
and
that's
already
it
for
the
week.
Thanks
for
listening,
bye.