Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: rewritten sections from Benedict's feedback.

...

Info
titleDRAFT

The CEP process itself has not been approved by the community yet. This is a strawman draft to start the conversation to such a process.
A discussion thread in progress exists here.


This page describes a proposed Cassandra Enhancement Proposal (CEP) process for proposing a major change to Cassandra.


Table of Contents

...

Purpose

Cassandra Enhancement Proposals are intended as a better landing space for New Features, as opposed to JIRA.

The purpose of an a CEP confluence page is to inform and involve both the user and dev communities in major improvements to Cassandra, from as early on in the development process as possiblehelp promote as much possible open collaboration during the initial brainstorming and navigation phase of a new feature. The benefit this brings to the author/initiator of the idea, increasing the likelihood of the idea getting implemented and committed, is intended to be enough incentive to write the CEP instead of the JIRA ticket.

CEPs should be used for significant user-facing or cross-cutting changes, not small incremental improvements. When in doubt, if a committer thinks a change needs an CEP, it does.   At the technical level, CEPs are intended to increase the likelihood that compatibility requirements are safely met. At a user level, CEPs are to help ensure all variants of Cassandra installations and usages are considered.

CEPs are also not intended to be a return to waterfall development, and an acceptance of an CEP provides no guarantee to the work eventually being accepted. It is all too often that work-invalidating insights hit late, invalidating an idea, despite after a working group having formed, agreed, and a significant work has been done. This is always a risk of part of agile development, but a CEP up front with engagement from a bunch of parties should help surface those design implications sooner.

The process of starting a CEP is intended to be light-weight and flexible. For example, a CEP can be started with nothing more than a title to begin with, and where it goes from there is left up to the working group that materialises. See Scott Andreas' 2019 NGCC presentation for a community perspective, and how this ties into the release lifecycle and evolution of the project. The information and guidelines that follow are only intended as food-for-thought to get started.

What should be included in a CEP?

...