Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-32507

Create an Indexing Domain Event Producer

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: In Progress
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 2025.x
    • Component/s: Elasticsearch

      Description

      Add a new Domain Event Producer (DEP) for indexing that produces an event describing what needs to be reindexed on transaction completion.

      The DEP will implement the same logic as the current IndexingCommandsStacker to build a list of indexing commands corresponding to the transaction.

      An indexing command describes:

      • What action to perform? index or delete
      • Which documents to process?
        • a document, eventually with its related documents: proxies, previous version (to update the isLastVersion prop)
        • a document and all its descendants, this happens in case of security update, move, copy or delete a folder.
        • only direct children of a document, this happens in case of ordered folder (childrenOrderChanged)
      • When to index:
        • synchronously, in the case the next transaction needs to immediately find the update documents, this could be limited to few documents only
        • asynchronously

      Note that Nuxeo is always indexing the entire document. Partial indexing could make sense for mass update when changing content ordering, propagating read acls change. First it’s risky: conflict could easily create corrupted document representation, harder to pinpoint than desynchronisation, second it’s not necessarily faster, because the entire document is probably already loaded and behind the scene at elastic level it’s a delete and insert generating the same disk IO.

      All commands are written to a single event on the DEP stream.

        Attachments

          Activity

            People

            • Assignee:
              bdelbosc Benoit Delbosc
              Reporter:
              bdelbosc Benoit Delbosc
              Participants:
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: