[
https://issues.apache.org/jira/browse/DRILL-4600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15239446#comment-15239446
]
Paul Rogers commented on DRILL-4600:
------------------------------------
Great start! This is a policy, but perhaps we can articulate the thinking and
goals behind the policy. Something like this:
1. Support the operational needs of enterprise-level production systems.
2. Preserve the ability to innovate.
Item 1 can be expanded: give admins time to upgrade systems while continuing to
have old & new systems interoperate. Perhaps at first we strive for just
two-version compatibility: when upgrading to 1.x, the older, unupgraded 1.(x-1)
systems will continue to interoperate. (Or, for MapR, x-2 systems...) When the
product is more mature, perhaps we'd see demand to expand compatibility.
Further, as a tactical measure, I wonder if we can:
1. Identify our customer-facing APIs.
2. Isolate those APIs from internal data structures and protocols.
In this way, we can innovate on internals at a rapid clip, as long as we meet
our compability goals on the customer-facing APIs. Yes, this may require some
translation between stable, slowly-changing external APIs and rapidly chaning
internal structures. But, the alternative is to lock down internal structures,
which impacts ability to innovate; or to break customer apps, which is an
invitation to try a different solution.
> Document Public Compatibility Commitments
> -----------------------------------------
>
> Key: DRILL-4600
> URL: https://issues.apache.org/jira/browse/DRILL-4600
> Project: Apache Drill
> Issue Type: New Feature
> Reporter: Jacques Nadeau
> Assignee: Jacques Nadeau
> Fix For: 2.0.0
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)