You'll want to reach out to the users@ thread for getting feedback on
deprecation.

On Mon, May 11, 2020 at 9:53 AM Alexey Romanenko <aromanenko....@gmail.com>
wrote:

>
> Thanks Ismaël for recalling of this thread, I think we should start to
> take some efforts to deprecate the AWS SDK V1 IOs that are already
> implemeneted using V2 (if there are no other objections). In this case, it
> would make sense to abstract some common code ONLY if ,for some reasons, we
> would like to keep the both versions of IO (which is not a case for now,
> afaik).
>
> > On 8 May 2020, at 00:03, Ismaël Mejía <ieme...@gmail.com> wrote:
> >
> > Achieving good abstractions will prove elusive since the APIs differ
> > and we will end up with a ton of extra maintenance work that should be
> > not Beam's responsibility. I know that similar code (almost copy
> > pasteable) is not nice to have but we should consider this as a
> > temporary measure and probably try to make deprecation (and possible
> > removal) of older versions as soon as possible.
> > Please remember that this was already discussed in the past [1] and
> > the soft consensus was around rapid deprecation AWS SDK v1 IOs already
> > available in their v2 version and only do improvements on v1 IOs for
> > security related issues and dependency updates. This has not happened
> > yet but the only missing thing is someone to take action.
> >
> > +cammac...@gmail.com would you have to me to start rolling this plan?
> > otherwise someone else can jump and do it too.
> >
> > [1]
> https://lists.apache.org/thread.html/130cb60e6bcdd58c5afdd0c375663eaf05e705aab9ee0196535cd17f%40%3Cdev.beam.apache.org%3E
> >
> > On Thu, May 7, 2020 at 11:05 PM Luke Cwik <lc...@google.com> wrote:
> >>
> >> I think you should try and share as much as is reasonable. Using what
> is shared between AWS V1 and V2 SDKs would be a good signal as to what
> should be shared in Beam. There might be some places where a trivial
> wrapper could help but I wouldn't try to create a bunch of grand
> abstractions that fit both versions of the AWS SDKs.
> >>
> >> On Wed, May 6, 2020 at 9:59 AM Alexey Romanenko <
> aromanenko....@gmail.com> wrote:
> >>>
> >>> I’d like to get back to this question, fairly raised by Jonothan a
> while ago, since actually it affects not only KinesisIO but also all other
> AWS IOs in general, that uses AWS SDK of two different versions.
> >>>
> >>> My personal opinion - I’d strongly like to avoid a copy-pasted code
> for two different versions of the same IO (and double support of this),
> that is SDK-independent. In this case, if we wish too provide IO for two
> AWS SDK versions, we have to extract this core logic into one common and
> SDK-independent framework that could used by any of SDK versions then.
> >>>
> >>> In the same time, if it will require a lot of efforts to achieve that,
> then probably we need to decide to leave only one IO based on single AWS
> SDK version (I guess it will be V2 as more modern)  and deprecate old
> version (and then remove it to avoid a confusion for users).
> >>>
> >>> What others think about that?
> >>>
> >>> On 18 Apr 2020, at 01:48, Jonothan Farr <jonothan.f...@gmail.com>
> wrote:
> >>>
> >>> Hi, I wanted to try out KinesisIO with enhanced fanout for a PoC I was
> working on, so I ended up submitting that as
> https://github.com/apache/beam/pull/9899.
> >>>
> >>> But since that still needs work to be fully functional (right now it
> does not handle resharding), I figured I could at least contribute the
> updates to make KinesisIO compatible with the AWS SDK v2, so I split that
> out and submitted it as: https://github.com/apache/beam/pull/11318.
> >>>
> >>> Now some totally reasonable concerns have been raised about
> maintaining two separate codebases, and having to dual-commit every bugfix
> or feature enhancement. That seems to already be the case for all of the
> other AWS IOs in amazon-web-services2 (dynamodb, sns, sqs), but do we want
> to continue that trend? What do members of the community think?
> >>>
> >>> One solution is obviously to rewrite the AWS IOs with an added
> abstraction layer so that the SDK-specific code can be factored out.
> However, the KinesisIO class itself already has dependencies on the v1 AWS
> SDK so I'm not aware of a way that this could be done so that it's
> backwards-compatible. This means that everyone currently using KinesisIO
> would most likely have to update their code to use the new interface
> whether they wanted to use the new v2 SDK or continue to use v1. I think a
> rewrite would also be a non-trivial task with more than a few details to be
> worked out first.
> >>>
> >>> From my perspective, the options are:
> >>>
> >>> - Merge #11318 now and the community can use the v2 AWS SDK with
> KinesisIO and I can continue working on enhanced fanout while a rewrite is
> being worked on, but the community now has to dual-commit any changes to
> KinesisIO.
> >>> - Close #11318 and continue working on #9899 and I alone have to
> dual-commit the changes until it can be merged, at which point everyone can
> use enhanced fanout while the rewrite is being worked on. Then the
> community will also have to dual-commit but only after enhanced fanout is
> available.
> >>> - Close both PRs and just wait for a rewrite, and no one can use the
> v2 AWS SDK or enhanced fanout in KinesisIO until after it's done. (Not to
> imply that I wouldn't be interested in contributing to that effort, just
> for the sake of these 2 PRs.)
> >>> - Don't do the rewrite at all and just live with dual-committing until
> the KinesisIO based on the v1 SDK reaches its end of life. No one has to
> update their code to continue using the v1 SDK, only if they want to move
> to v2.
> >>>
> >>> There may be other options or considerations I'm missing here. What do
> others think?
> >>>
> >>> Thanks,
> >>> Jonothan
> >>>
> >>>
>
>

Reply via email to