[wp-trac] [WordPress Trac] #64696: Real time collboration effectively disables persistent post caches while anyone edits a post

WordPress Trac noreply at wordpress.org
Fri Mar 13 01:36:34 UTC 2026


#64696: Real time collboration effectively disables persistent post caches while
anyone edits a post
--------------------------------------+--------------------------
 Reporter:  peterwilsoncc             |       Owner:  (none)
     Type:  defect (bug)              |      Status:  new
 Priority:  normal                    |   Milestone:  7.0
Component:  Posts, Post Types         |     Version:  trunk
 Severity:  normal                    |  Resolution:
 Keywords:  has-patch has-unit-tests  |     Focuses:  performance
--------------------------------------+--------------------------

Comment (by peterwilsoncc):

 Replying to [comment:59 JoeFusco]:
 > Replying to [comment:57 peterwilsoncc]:
 >
 > > @JoeFusco My reading of Matt's comment above is that the addition of
 one table has been authorized for the current and future RTC features.
 It's a very rare occurrence so we're not going to be able to slide in two
 when it's possible to use one.
 >
 > Agreed - one table for sync, no argument there.

 I really don't like dealing with disingenuous comments. My comment is
 perfectly clear that my understanding is there is approval to add one (1)
 table in total to WordPress 7.0, bringing the total number of tables in
 WordPress to thirteen (13) in a single site install. To pretend to
 interpret my comment as anything else is very unhelpful.

 It took a week of delaying to even get this discussion started, let's not
 waste further time with deliberate misinterpretations.

 For the purposes of awareness updates, I don't see that a unique index is
 absolutely needed. Helpful, sure but not something that warrents another
 table.

 For most requests, the table will be updated so we can run something along
 the lines of

 {{{#!sql
 UPDATE `wp_collaboration`
    SET event_time = NOW()
    WHERE room = 'room1' AND event = 'awareness' AND client_id = 'client2'
 }}}

 If no rows are affected, that implies that the client is signing on and an
 insert is required.

 Yes, if two concurrent requests occur there is a slim chance two rows will
 be created but that should be an exceptionally rare circumstance: the
 polling client waits for the apiFetch promise to complete before
 scheduling the next polling event. You can see this in affect by
 throttling network requests.

 As @czarate mentions above, there is a chance that other items will need
 to be considered as part of the real time collaboration feature. Rather
 than targeted, endpoint specific tables, we need to write a table that
 meets the requirements of what is known today and the unknown of tomorrow.

 ----

 Re: requiring a persistent cache: I don't think this is a good idea, I
 just see it as a handy place to shift awareness if it's available. Similar
 to transients but without the options table.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/64696#comment:63>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list