-
Notifications
You must be signed in to change notification settings - Fork 487
JAMES-4156 ADR: Deleted message vault single bucket usage #2894
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
| @@ -0,0 +1,40 @@ | |||
| # 76. Deleted Message Vault: single bucket usage | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would expect src/adr to be about James architecture.
If I understand correctly, this one is about Delete Message Vault extension.
If so, maybe introducing a way to split extensions ADRs from the main codebase would help limit the amount of ADRs one has to read to understand James?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 on the overall goal to keep James understandable.
On my side a conflicting goal come to mind: discoverability. Having a single folder for ADRs makes it a single place to speak architecture and at least I know where to look.
There might exist nice solution to conciliate both goals (like referencing new ADR locations in James main ADR location like establishing mailbox/src/adr ?) - maybe other projects using ADRs have already soved this problem.
Also would we intend to relocate the concerned ADRs?
IMO it would be a awesome mailing list topic!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mbaechler Not against it, but I agree with @chibenwa on the fact that then it should be discussed with the community (ML) and should be treated in an other PR when we reach a proper consensus
If we start having adrs all around the place though I'm afraid it might be confusing. What about subfolders instead?
src/
- adr/
+ core/
+ extensions/
[...]
I think it's clear, it's still in one place, subfolders allow easily for someone to just look at the core James ADRs if he just wishes to understand James basic core concepts, and also still easy to find extensions ADRs if one needs them? It would be confusing IMO to go look into the module of those extensions to find potential ADRs related to it.
? Will start a ML anyways on this today :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it should be discussed with the community (ML) and should be treated in an other PR when we reach a proper consensus
+1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ML started
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Arsnael your proposal seems nice
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmm seems my mail did not reach the server-dev ML for some reason sorry... Will see
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright mistake on the destination first time (I changed laptop sorry)... Now the ML is created.
@mbaechler are you ok if we merge this ADR now and reorganize later when the consensus is reached via the ML discussion? :)
|
The pattern of using several "buckets" exists in several places ( and caused me a lot of pain for message queues ) I wonder if it ever was such a good idea and if the scope of the ADR shouldn't be expanded to a more general definition... |
I see the point. We could actally then consider this a rework of "how the bucket is encoded at the S3 level" It "would then just be a S3 concern" and could likely be implemented as a prefix (instead of encoding a James bucket as a S3 bucket).
=> No need of migration for #default (mailbox, mailqueue) So I would propose: (GC would then skip Side benefits: refactoring the bucket name translation, and the bucket auto-creation, which is a mess.
The start of the discussion becomes irrelevant but not the discussion itself. BTW One might also argue "I want to undersntand James while I am not using S3". |
then skip the S3 related ADRs but they are still part of the core ADRs :P
I don't know : ADRs should represent architecturally structural decisions, if an ADR only impacts a single extension/module then it's an implementation detail not an architectural decision and it should probably be documented along the corresponding extension. |
|
#2904 is a tiny step toward implementing "James buckets" as "object prefixes". |
|
Closing related changes to deleted message vault for a lack of consensus reason. Moving work to linagora tmail. |
|
I think there is a misunderstanding :
Note that my only concern with Benoit's change was that it resulted in a breaking change in the BucketNameResolver api contract. |
|
Hello @jeantil
While conceptually better this direction indeed have broad impact; I must confess it do not seem like a reachable goal to consensually achieve a full refactoring of S3BlobStoreDAO to operate off a single bucket. Marginal gains compared to just "rewritting the Deleted Message Vault" to use a single bucket do not seem in favor of the full-s3-refactoring idea.
This is somewhat what #2902 achieves, and is in line with the current ADR. BTW this is the direction we (linagorians) chose to move on with for Twake Mail.
I think there's a misunderstanding here indeed. As employee I am accountable for time spent on the project and that it results in fixing the problem my employer faces. If to reach this end this means moving forward on a separate, company owned repo then be it (Twake mail is not closed source, but AGPL v3 and owned by LINAGORA). But indeed this is a problem others in the James community will face and indeed maintenance costs will be lower with this code change within James. And carrying the two approaches are not mutually exclusive, and could even converge later depending on feedback ! I propose to bring this to the mailing list thread, and to a vote:
Cheers, Benoit |
|
No description provided.