I agree maintaining backwards-compatibility here adds a lot of overhead.
I haven't so far found a way to reconcile these elegantly.
Whichever way we go it's better to take the pain sooner rather than
later. Kafka 0.11.0.0 (through KAFKA-5045
<https://issues.apache.org/jira/browse/KAFKA-5045>/KIP-114) increased
the surface affected by the lack of fully type-parametrised suppliers
noticeably.
Cheers,
Michał
On 03/06/17 09:43, Damian Guy wrote:
Hmm, i guess this won't work due to adding the additional <K,V> to the
StateStoreSupplier params on reduce, count, aggregate etc.
On Sat, 3 Jun 2017 at 09:06 Damian Guy <damian....@gmail.com
<mailto:damian....@gmail.com>> wrote:
Hi Michal,
Thanks for the KIP - is there a way we can do this without having
to introduce the new Typed.. Interfaces, overloaded methods etc?
Is it possible that we just need to provide a couple of new
methods on PersistentKeyValueFactory for windowed and
sessionWindowed to return interfaces like you've introduced in
TypedStores?
I admit i haven't looked in much detail if that would work.
My concern is that this is duplicating a bunch of code and
increasing the surface area for what is minimal benefit. It is one
of those cases where i'd love to not have to maintain backward
compatibility.
Thanks,
Damian
On Fri, 2 Jun 2017 at 08:20 Michal Borowiecki
<michal.borowie...@openbet.com
<mailto:michal.borowie...@openbet.com>> wrote:
Thanks Matthias,
I appreciate people are busy now preparing the 0.11 release.
One thing I would also appreciate input on is perhaps a better
name for the new TypedStores class, I just picked it quickly
but don't really like it.
Perhaps StateStores would make for a better name?
Cheers,
Michal
On 02/06/17 07:18, Matthias J. Sax wrote:
Thanks for the update Michal.
I did skip over the PR. Looks good to me, as far as I can tell. Maybe
Damian, Xavier, or Ismael can comment on this. Would be good to get
confirmation that the change is backward compatible.
-Matthias
On 5/27/17 11:11 AM, Michal Borowiecki wrote:
Hi all,
I've updated the KIP to reflect the proposed backwards-compatible
approach:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=69408481
Given the vast area of APIs affected, I think the PR is easier to read
than the code excerpts in the KIP itself:
https://github.com/apache/kafka/pull/2992/files
Thanks,
Michał
On 07/05/17 10:16, Eno Thereska wrote:
I like this KIP in general and I agree it’s needed. Perhaps Damian can
comment on the session store issue?
Thanks
Eno
On May 6, 2017, at 10:32 PM, Michal
Borowiecki<michal.borowie...@openbet.com>
<mailto:michal.borowie...@openbet.com> wrote:
Hi Matthias,
Agreed. I tried your proposal and indeed it would work.
However, I think to maintain full backward compatibility we would also
need to deprecate Stores.create() and leave it unchanged, while providing a new
method that returns the more strongly typed Factories.
( This is because PersistentWindowFactory and PersistentSessionFactory cannot extend the existing
PersistentKeyValueFactory interface, since their build() methods will be returning
TypedStateStoreSupplier<WindowStore<K, V>> and TypedStateStoreSupplier<SessionStore<K, V>>
respectively, which are NOT subclasses of TypedStateStoreSupplier<KeyValueStore<K, V>>. I do not see
another way around it. Admittedly, my type covariance skills are rudimentary. Does anyone see a better way around
this? )
Since create() takes only the store name as argument, and I don't see
what we could overload it with, the new method would need to have a different
name.
Alternatively, since create(String) is the only method in Stores, we
could deprecate the entire class and provide a new one. That would be my
preference. Any ideas what to call it?
All comments and suggestions appreciated.
Cheers,
Michał
On 04/05/17 21:48, Matthias J. Sax wrote:
I had a quick look into this.
With regard to backward compatibility, I think it would be required do
introduce a new type `TypesStateStoreSupplier` (that extends
`StateStoreSupplier`) and to overload all methods that take a
`StateStoreSupplier` that accept the new type instead of the current
one.
This would allow `.build` to return a `TypedStateStoreSupplier` and
thus, would not break any code. As least if I did not miss anything with
regard to some magic of type inference using generics (I am not an
expert in this field).
-Matthias
On 5/4/17 11:32 AM, Matthias J. Sax wrote:
Did not have time to have a look. But backward compatibility is a must
from my point of view.
-Matthias
On 5/4/17 12:56 AM, Michal Borowiecki wrote:
Hello,
I've updated the KIP with missing information.
I would especially appreciate some comments on the compatibility aspects
of this as the proposed change is not fully backwards-compatible.
In the absence of comments I shall call for a vote in the next few days.
Thanks,
Michal
On 30/04/17 23:11, Michal Borowiecki wrote:
Hi community!
I have just drafted KIP-147: Add missing type parameters to
StateStoreSupplier factories and KGroupedStream/Table methods
<https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=69408481>
<https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=69408481>
<https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=69408481>
<https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=69408481>
Please let me know if this a step in the right direction.
All comments welcome.
Thanks,
Michal
--
Signature
<http://www.openbet.com/> <http://www.openbet.com/>
<http://www.openbet.com/> <http://www.openbet.com/> Michal Borowiecki
Senior Software Engineer L4
T: +44 208 742 1600 <tel:+44%2020%208742%201600>
+44 203 249 8448 <tel:+44%2020%203249%208448>
E: michal.borowie...@openbet.com
<mailto:michal.borowie...@openbet.com>
<mailto:michal.borowie...@openbet.com>
<mailto:michal.borowie...@openbet.com>
W: www.openbet.com <http://www.openbet.com> <http://www.openbet.com/>
<http://www.openbet.com/> <http://www.openbet.com/> <http://www.openbet.com/>
<http://www.openbet.com/> <http://www.openbet.com/>
OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<https://www.openbet.com/email_promo>
<https://www.openbet.com/email_promo>
<https://www.openbet.com/email_promo>
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the addressee. If
you have received this message in error, please immediately notify the
postmas...@openbet.com <mailto:postmas...@openbet.com>
<mailto:postmas...@openbet.com>
<mailto:postmas...@openbet.com> <mailto:postmas...@openbet.com>
<mailto:postmas...@openbet.com> <mailto:postmas...@openbet.com>
<mailto:postmas...@openbet.com> and delete it
from your system as well as any copies. The content of e-mails as well
as traffic data may be monitored by OpenBet for employment and
security purposes. To protect the environment please do not print this
e-mail unless necessary. OpenBet Ltd. Registered Office: Chiswick Park
Building 9, 566 Chiswick High Road, London, W4 5XT, United Kingdom. A
company registered in England and Wales. Registered no. 3134634. VAT
no. GB927523612
--
Signature
<http://www.openbet.com/> <http://www.openbet.com/>
<http://www.openbet.com/> <http://www.openbet.com/> Michal Borowiecki
Senior Software Engineer L4
T: +44 208 742 1600 <tel:+44%2020%208742%201600>
+44 203 249 8448 <tel:+44%2020%203249%208448>
E: michal.borowie...@openbet.com
<mailto:michal.borowie...@openbet.com>
<mailto:michal.borowie...@openbet.com>
<mailto:michal.borowie...@openbet.com>
W: www.openbet.com <http://www.openbet.com> <http://www.openbet.com/>
<http://www.openbet.com/> <http://www.openbet.com/> <http://www.openbet.com/>
<http://www.openbet.com/> <http://www.openbet.com/>
OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<https://www.openbet.com/email_promo>
<https://www.openbet.com/email_promo>
<https://www.openbet.com/email_promo>
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmas...@openbet.com <mailto:postmas...@openbet.com>
<mailto:postmas...@openbet.com>
<mailto:postmas...@openbet.com> <mailto:postmas...@openbet.com>
<mailto:postmas...@openbet.com> <mailto:postmas...@openbet.com>
<mailto:postmas...@openbet.com> and delete it
from your system as well as any copies. The content of e-mails as well
as traffic data may be monitored by OpenBet for employment and security
purposes. To protect the environment please do not print this e-mail
unless necessary. OpenBet Ltd. Registered Office: Chiswick Park Building
9, 566 Chiswick High Road, London, W4 5XT, United Kingdom. A company
registered in England and Wales. Registered no. 3134634. VAT no.
GB927523612
--
<obet_logo_tiny.gif><http://www.openbet.com/> <http://www.openbet.com/> Michal Borowiecki
Senior Software Engineer L4
<halfcircle_tiny.gif> T: +44 208 742 1600
<tel:+44%2020%208742%201600>
+44 203 249 8448 <tel:+44%2020%203249%208448>
<halfcircle_tiny.gif> E: michal.borowie...@openbet.com
<mailto:michal.borowie...@openbet.com>
<mailto:michal.borowie...@openbet.com>
<mailto:michal.borowie...@openbet.com>
<halfcircle_tiny.gif> W: www.openbet.com <http://www.openbet.com>
<http://www.openbet.com/> <http://www.openbet.com/>
<halfcircle_tiny.gif> OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<sig_promo_img.gif><https://www.openbet.com/email_promo>
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the addressee. If you have
received this message in error, please immediately notify thepostmas...@openbet.com
<mailto:postmas...@openbet.com> <mailto:postmas...@openbet.com>
<mailto:postmas...@openbet.com> and delete it from your system as well
as any copies. The content of e-mails as well as traffic data may be monitored by
OpenBet for employment and security purposes. To protect the environment please do
not print this e-mail unless necessary. OpenBet Ltd. Registered Office: Chiswick Park
Building 9, 566 Chiswick High Road, London, W4 5XT, United Kingdom. A company
registered in England and Wales. Registered no. 3134634. VAT no. GB927523612
--
Signature
<http://www.openbet.com/> <http://www.openbet.com/> Michal
Borowiecki
Senior Software Engineer L4
T: +44 208 742 1600 <tel:+44%2020%208742%201600>
+44 203 249 8448 <tel:+44%2020%203249%208448>
E: michal.borowie...@openbet.com
<mailto:michal.borowie...@openbet.com>
W: www.openbet.com <http://www.openbet.com>
<http://www.openbet.com/> <http://www.openbet.com/>
OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<https://www.openbet.com/email_promo>
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmas...@openbet.com <mailto:postmas...@openbet.com>
<mailto:postmas...@openbet.com> <mailto:postmas...@openbet.com> and delete it
from your system as well as any copies. The content of e-mails as well
as traffic data may be monitored by OpenBet for employment and security
purposes. To protect the environment please do not print this e-mail
unless necessary. OpenBet Ltd. Registered Office: Chiswick Park Building
9, 566 Chiswick High Road, London, W4 5XT, United Kingdom. A company
registered in England and Wales. Registered no. 3134634. VAT no.
GB927523612
--
<http://www.openbet.com/> Michal Borowiecki
Senior Software Engineer L4
T: +44 208 742 1600 <tel:+44%2020%208742%201600>
+44 203 249 8448 <tel:+44%2020%203249%208448>
E: michal.borowie...@openbet.com
<mailto:michal.borowie...@openbet.com>
W: www.openbet.com <http://www.openbet.com/>
OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the
addressee. If you have received this message in error, please
immediately notify the postmas...@openbet.com
<mailto:postmas...@openbet.com> and delete it from your system
as well as any copies. The content of e-mails as well as
traffic data may be monitored by OpenBet for employment and
security purposes. To protect the environment please do not
print this e-mail unless necessary. OpenBet Ltd. Registered
Office: Chiswick Park Building 9, 566 Chiswick High Road,
London, W4 5XT, United Kingdom. A company registered in
England and Wales. Registered no. 3134634. VAT no. GB927523612
--
Signature
<http://www.openbet.com/> Michal Borowiecki
Senior Software Engineer L4
T: +44 208 742 1600
+44 203 249 8448
E: michal.borowie...@openbet.com
W: www.openbet.com <http://www.openbet.com/>
OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmas...@openbet.com <mailto:postmas...@openbet.com> and delete it
from your system as well as any copies. The content of e-mails as well
as traffic data may be monitored by OpenBet for employment and security
purposes. To protect the environment please do not print this e-mail
unless necessary. OpenBet Ltd. Registered Office: Chiswick Park Building
9, 566 Chiswick High Road, London, W4 5XT, United Kingdom. A company
registered in England and Wales. Registered no. 3134634. VAT no.
GB927523612