[ 
https://issues.apache.org/jira/browse/JAMES-2919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benoit Tellier updated JAMES-2919:
----------------------------------
    Description: 
Please find attached the two technical decisions being proposed.

h1. Objectives:

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

h2. 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.

h2. 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.

  was:
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.


> Allow partial message read in JMAP DRAFT
> ----------------------------------------
>
>                 Key: JAMES-2919
>                 URL: https://issues.apache.org/jira/browse/JAMES-2919
>             Project: James Server
>          Issue Type: Wish
>          Components: JMAP
>            Reporter: Benoit Tellier
>            Assignee: Antoine Duprat
>            Priority: Major
>         Attachments: adr-0001-jmap-partial-reads.md, 
> adr-0002-precompute-jmap-preview.md
>
>
> Please find attached the two technical decisions being proposed.
> h1. Objectives:
>  - Reduce the pressure exerced by JMAP on underlying data stores
>  - Improve network usage between James & JMAP client
> h2. 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.
> h2. 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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to