Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-2919

Allow partial message read in JMAP DRAFT

    XMLWordPrintableJSON

    Details

    • Type: Wish
    • Status: Reopened
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 3.5.0
    • Component/s: JMAP
    • Labels:
      None

      Description

      Please find attached the two technical decisions being proposed.

      Objectives:

      • Reduce the pressure exerced by JMAP on underlying data stores
      • Improve network usage between James & JMAP client

      Proposal for JMAP partial reads

      Introduce two projections for JMAP messages:

      • One with only metadata
      • One with metadata + headers

      Given the properties requested by the client, the most appropriate message projection will be returned.

      Finally, we should nullify JSON fields not requested by the client before sending it to the client.

      Proposal for JMAP preview computation

      We should pre-compute message preview.

      A MailboxListener will compute the preview and store it in a MessagePreviewStore.

      We should have a Cassandra and memory implementation.

      When the preview is precomputed then for these messages we can consider the "preview" property as a metadata.

      We should provide a webAdmin task allowing to rebuild the projection.

        Attachments

        1. adr-0001-jmap-partial-reads.md
          1 kB
          Benoit Tellier
        2. adr-0002-precompute-jmap-preview.md
          1 kB
          Benoit Tellier
        3. adr-0001-jmap-partial-reads.md
          1 kB
          Gautier DI FOLCO
        4. adr-0002-precompute-jmap-preview.md
          2 kB
          Gautier DI FOLCO

          Activity

            People

            • Assignee:
              btellier Benoit Tellier
              Reporter:
              btellier Benoit Tellier
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: