[ 
https://issues.apache.org/jira/browse/JAMES-3700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17494080#comment-17494080
 ] 

Jean Helou commented on JAMES-3700:
-----------------------------------

The schema way is really neat but I feel a small word of warning is required.

I strongly suggest a long experiment with at least  couple schema update on non 
critical data before actually enabling it in production.

I had production crashes in one of the projects where I used pulsar and avro 
schemas: 

On application startup for some reason my pulsar stack ended up skipping older 
versions of the schema and crashed attempting to read older message with the 
latest schema. I got pretty deep in the debugging but unfortunately I never got 
to the bottom of the issue (as in I didn't have time to build a minimized 
reproduction that I could submit as a bug to pulsar). I can't prove that the 
issue was in the pulsar client event if it is my personal conviction. It may 
have been a misuse (but I couldn't identify where), it may be a bug that was 
fixed (it was in an older version of pulsar) but it warrants some caution :)

One of the thing I intended to try was using an external, explicit schema 
registry instead of using the pulsar embedded implicit registry because I 
suspected that the schema was not consistently distributed in the cluster and 
connecting to the wrong node would trigger the issue.

 

> Dead letter policy for the Pulsar MailQueue
> -------------------------------------------
>
>                 Key: JAMES-3700
>                 URL: https://issues.apache.org/jira/browse/JAMES-3700
>             Project: James Server
>          Issue Type: Sub-task
>          Components: pulsar, Queue
>    Affects Versions: master
>            Reporter: Benoit Tellier
>            Priority: Major
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> Currently the Pulsar MailQueue do not come up with a dead-letter policy.
> A bad JSON payload halts the processing. 
> This makes the Pulsar MailQeue brittle:
>   - The ability to inject a single message with a bad payload can cause an 
> entire James cluster to come to a halt.
>  - Could be seen as an attack vector
>  - But also any changes to the underlying JSON schema for payloads is 
> susceptible to cause major downtime.
> We should define a deadletter policy:
>  - Given a number of failures delivery of the message would be abandonned
>  - And moved to a dead-letter topic for later audit (prevent data loss)



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to