[ 
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)

Reply via email to