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

Clément MATHIEU commented on CAMEL-16826:
-----------------------------------------

Ok, I have this message to review. Let me read it carefully to understand its 
content and intent.

The message is about suggesting improvements to the azure-storage-blob 
component, specifically to add features that are already available in the AWS 
S3 component. The user is interested in having similar functionality in the 
Azure Blob component, such as deleteAfterRead, moveAfterRead, and other related 
options. They also mention the challenge of backward compatibility and suggest 
that supporting an idempotent repository might be a separate change.

First, let's correct any typos or spelling errors. Then, I'll look at the 
grammar and clarity. Finally, I'll suggest improvements to make the message 
more concise and unambiguous.

1. The phrase "Unless I am mistaken" is correct but could be more concise. 
Maybe "If I'm not mistaken" or simply "Currently" would work better.
2. The list of configuration properties is clear, but perhaps it could be 
formatted more consistently.
3. The sentence about backward compatibility is a bit long. Maybe breaking it 
down would help.
4. The last sentence is a bit convoluted. It could be simplified for clarity.

Let me rewrite the message with these considerations in mind.

Here’s a revised version:

"I am very interested in this feature.

Currently, the azure-storage-blob component does not support an idempotent 
repository or the (delete|move)AfterRead options. This makes the consumer more 
difficult to process blobs than necessary.

It would be great to replicate the configuration properties available in the 
AWS S3 component for Azure Blob, including:

- deleteAfterRead
- moveAfterRead
- removePrefixOnMove
- destinationContainerName
- destinationBlobPrefix
- destinationBlobSuffix

However, due to backward compatibility requirements, the Azure component cannot 
use the same default values as the AWS one. For example, deleteAfterRead 
defaults to true in AWS, and doing the same in Azure would break existing 
clients.

AWS also has the autoCreateBucket property. It might make sense to support 
autoCreateContainer as well to ensure that AWS and Azure moveAfterRead behave 
similarly.

Supporting an idempotent repository addresses a similar need (i.e., avoiding 
reprocessing a blob that has already been processed) but seems quite different 
in terms of implementation. Therefore, it might be better to handle this in a 
separate change."

Let me check for grammar and spelling errors:

- "I'd be very interested in this feature." -> "I am very interested in this 
feature." (more direct)
- "Unless I am mistaken" -> "Currently" (more concise)
- "the azure-storage-blob component currently does not support either an 
idempotent repository or the (delete|move)AfterRead options." -> "the 
azure-storage-blob component does not support an idempotent repository or the 
(delete|move)AfterRead options." (removed redundancy)
- "This makes the consumer more difficult than necessary to process blobs." -> 
"This makes the consumer more difficult to process blobs than necessary." 
(grammar fix)
- "It would be great to replicate configuration properties available in the AWS 
S3 component to Azure Blob." -> "It would be great to replicate the 
configuration properties available in the AWS S3 component for Azure Blob." 
(grammar fix)
- "Unfortunately, because of backward compatibility requirements, the Azure 
component cannot use exactly the same default value as the AWS one." -> 
"However, due to backward compatibility requirements, the Azure component 
cannot use the same default values as the AWS one." (more concise and clearer)
- "For example deleteAfterRead default to true in AWS, doing the same in Azure 
would break existing clients." -> "For example, deleteAfterRead defaults to 
true in AWS. Doing the same in Azure would break existing clients." (grammar 
fix)
- "AWS also has the autoCreateBucket property. It could make sense to support 
autoCreateContainer too as it would ensure that AWS & Azure moveAfterRead 
behave similarly." -> "AWS also has the autoCreateBucket property. It might 
make sense to support autoCreateContainer as well to ensure that AWS and Azure 
moveAfterRead behave similarly." (grammar and clarity)
- "Supporting an idempotent repository addresses a similar need (i.e. avoid 
reprocessing a blob that has already been processed) but seems quite orthogonal 
implementation wise. So, it perhaps better to do this in a separate change." -> 
"Supporting an idempotent repository addresses a similar need (i.e., avoiding 
reprocessing a blob that has already been processed) but seems quite different 
in terms of implementation. Therefore, it might be better to handle this in a 
separate change." (clarity and grammar)

Let me see the revised version:

"I am very interested in this feature.

Currently, the azure-storage-blob component does not support an idempotent 
repository or the (delete|move)AfterRead options. This makes the consumer more 
difficult to process blobs than necessary.

It would be great to replicate the configuration properties available in the 
AWS S3 component for Azure Blob, including:

- deleteAfterRead
- moveAfterRead
- removePrefixOnMove
- destinationContainerName
- destinationBlobPrefix
- destinationBlobSuffix

However, due to backward compatibility requirements, the Azure component cannot 
use the same default values as the AWS one. For example, deleteAfterRead 
defaults to true in AWS. Doing the same in Azure would break existing clients.

AWS also has the autoCreateBucket property. It might make sense to support 
autoCreateContainer as well to ensure that AWS and Azure moveAfterRead behave 
similarly.

Supporting an idempotent repository addresses a similar need (i.e., avoiding 
reprocessing a blob that has already been processed) but seems quite different 
in terms of implementation. Therefore, it might be better to handle this in a 
separate change."

Looks good! The message is now clearer and more concise.Here is a revised 
version of your message with improved clarity and grammar:

---

I am very interested in this feature.

Currently, the azure-storage-blob component does not support an idempotent 
repository or the (delete|move)AfterRead options. This makes the consumer more 
difficult to process blobs than necessary.

It would be great to replicate the configuration properties available in the 
AWS S3 component for Azure Blob, including:

- deleteAfterRead
- moveAfterRead
- removePrefixOnMove
- destinationContainerName
- destinationBlobPrefix
- destinationBlobSuffix

However, due to backward compatibility requirements, the Azure component cannot 
use the same default values as the AWS one. For example, deleteAfterRead 
defaults to true in AWS. Doing the same in Azure would break existing clients.

AWS also has the autoCreateBucket property. It might make sense to support 
autoCreateContainer as well to ensure that AWS and Azure moveAfterRead behave 
similarly.

Supporting an idempotent repository addresses a similar need (i.e., avoiding 
reprocessing a blob that has already been processed) but seems quite different 
in terms of implementation. Therefore, it might be better to handle this in a 
separate change. I assume most users prefer to not have to rely on an extra 
infra dependency to ensure that an already processed blob will not be picked up 
again.


> Camel-Azure-Storage-Blob: Add deleteAfterRead option for consumer side
> ----------------------------------------------------------------------
>
>                 Key: CAMEL-16826
>                 URL: https://issues.apache.org/jira/browse/CAMEL-16826
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-azure
>            Reporter: Andrea Cosentino
>            Assignee: Andrea Cosentino
>            Priority: Minor
>             Fix For: 4.x
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to