-
Notifications
You must be signed in to change notification settings - Fork 88
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
chore: Split powertools-idempotency module to sub-modules #1504
Conversation
@scottgerring we had a quick chat with @eldimi about the structure of the project which is a bit different from what you did for parameters. Not sure if we should align or not as it's slightly different. Several implementations of parameters VS a core + a persistence layer. Actually, I'm not sure if the customer should have one or 2 dependencies. My view is that we should have:
Also looking at the packages, I would rather have |
Good point! I will adapt naming and package structure |
Parameters don't share a common interface on the configuration / injection side - you can't generically provide a Thinking harder, in the idempotency case we are trying to make an abstraction without more than one example of it. I think we should implement one other store - e.g. RDS - so that we know that the way we are trying to shape this is meaningful. In terms of extra "inheritance" through the poms, I don't have strong opinions. Is there some stuff that is grouped up here that logically belongs there? In general, let's be consistent unless there is a compelling reason not to. @jeromevdl what do you think?
In this case, ACK s/common/core, we just need to be careful with our naming with regard to the other powertools implementations. This is why |
I agree we should test our interface with another implementation. I think redis makes more sense for this kind of usage. It is one of the most used/appreciated "database". @eldimi, do you feel comfortable / do you have time to add another implementation with redis (not elasticache, really the redis implementation, so passing the redis connection url and so on)? We could even try that with https://upstash.com/.
I don't have a strong opinion either. I think what you did is ok (parent pom, core module, dynamodb module, redis module) and dynamodb/redis depend on core. |
I had the same feeling while splitiing to modules. That we are missing a second example. I can do the redis impl, but I think we should do this in a new PR. So, that this closes soon, right? |
I think it would be a nice way to prove the abstraction and would be nice to do in the same PR. If you're just going to go and do the next impl immediately after, same branch? If you'd like to see progress and will come back to this later, probably we can be a bit more flexible - v2 is still not a "production grade" branch so changing the interface after if we need to isn't so tragic. |
Kudos, SonarCloud Quality Gate passed! |
Issue #1467
Description of changes:
The idempotency module is split to sub-modules so that the various implementations (currently only dynamodb), are provided as pluggable extensions
Checklist
Breaking change checklist
RFC issue #:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.