Sanjay Radia wrote:
Both Facebook (Dhruba tells me) and Yahoo are suffering badly from the
lack of wire compatibility - a major motivaiton
for Yahoo to develop Avro.
Indeed. Wire compatibility is a crucial feature that we should release
as soon as possible. Perhaps before 1.0 if 1.0 slips, perhaps after if
we discover that it's harder to implement than we anticipate.
Wire compatibility - open question; but my thoughts are:
With the progress we have made on Avro so far I think there is a
very good chance to get wire compatibility in 22 which we
can then call 0.99 or 1.0. I think it is worth a shot.
+1 It's certainly worth a shot.
1.0 is fundamentally about being able to upgrade a cluster without
changing application code, i.e., API compatibility. Wire compatibility
will let folks, e.g., use a single client library version to talk to
clusters running different versions, a wonderful feature, but distinct
from the fundamental goal of 1.0.
In general we should not tie too many features to specific releases in
advance of their implementation, since that causes releases to slip when
features slip. Rather, we should work hard to implement high-priority
features and release periodically, as features are completed and we are
able to qualify releases. Long-term API compatibility is a very
high-priority feature. The first release that has APIs that we think we
can support back-compatibly for perhaps a few years should be called
1.0. Hopefully that will also have some other high-priority features,
like security, wire compatibility, etc. But I don't see the purpose of
requiring a specific list of high-priority features besides API
compatibility before we declare 1.0, and doing so could needlessly keep
valuable features from users.
Doug