> Apache Cassandra was fundamentally undeployable for four years between Nov 
> 2015 - 2019.
CASSANDRA-8099 was a maximal manifestation of a specific approach to 
engineering and calendar constraints we've seen time and again on the project; 
I don't want us to conflate things here. That was a herculean monolithic body 
of work performed in inhuman conditions (in vim!) that was ultimately so 
invasive, all the unit tests in the code-base were commented out and Jake and I 
spent a grueling 1.5-2 months hand-rewriting basically all the unit tests in 
that code-base to get things to even build and run, much less pass.

Massive blast radius changes that are un-sustainably complex, under-tested, 
where we don't property, fuzz, check coverage, check complexity, or A/B compare 
against a known good system (i.e. pre/post) correctness testing are going to 
destabilize the database at any time under any regime of tooling. We certainly 
could speed-run our way back into destabilization with LLM's as they are a 
force multiplier for both the good and the bad of one's engineering practices, 
but that's a solvable problem by better defining what our bars of quality are 
(Definition of Done anyone?) and holding ourselves accountable to delivering at 
that bar. 

On Thu, Sep 24, 2026, at 2:40 PM, David Capwell via dev wrote:
>> 
>> 
>> if you really want to pursue it I would ask that we do it offline to avoid 
>> polluting an already busy conversation
>> 
> People are directly responding saying that they feel discrimination currently 
> and that the policy tries to codify that discrimination, so I feel its 100% 
> on topic. This thread has presented 0 evidence that LLM usage has lowered the 
> quality of contributions merged and has so far been vibes and feeling; I have 
> yet to see any evidence to justify such discrimination so I will keep pushing 
> back until such evidence is presented so we can have a informed debate.
> 
>> namely how we handle shallow and localised bug fixes. I would be happy 
>> adding a clear entry to the “Permitted” section for this. No doubt there are 
>> many refinements needed to the Restricted text as well, that might also 
>> capture some of your concerns.
>> 
> I will not sign off on cherry picking areas where "safe" to use a tool; so no 
> it does not capture my concerns.
> 
> 
> 
>> I don't know if everyone remembers, but ten years ago Cassandra was full of 
>> serious correctness and stability issues. Despite developing it, I would not 
>> have run it myself or recommend that anyone use it. We have dug ourselves 
>> out of that hole, but it took years of discipline and effort, and we're 
>> still (deservedly) recovering our reputation. 
>> 
>> Let's use this new technology to improve the quality of our contributions, 
>> not squander our hard-earned gains in the name of speed. It will be hard to 
>> recover our reputation a second time.
>> 
> I do recall the 3.x line and put in a significant amount of effort to harden 
> it. There were behaviors I noticed after joining Cassandra that I feel 
> directly contributed to 3.0 and the decade of catch up; behaviors that still 
> linger in parts of the community today.
> 
> As I look on trunk and look at committed code and trace back to PRs and JIRA 
> I see the following:
> 
>  • large patches approved without comments
>  • 0 evidence that tests were run
> I then look at our CI and see tests failing for months. As you start to 
> triage you start to see some of them show real issues; yet they linger for 
> months not being addressed... when CI is unstable it takes a lot of effort to 
> triage "did my patch break the test", and I have seen time and time again 
> people do not put in that effort, and shrug off as "its just a flakey test"; 
> then our CI failure rate grows.
> 
> Non of this has anything to do with LLMs but LLMs running in this environment 
> is far more dangerous as there are not checks in place to "hold the bar". I 
> am all for raising the bar universally; expecting both humans and LLMs to 
> match that bar.
> 
>> `I’d support something that boils down to roughly this:
>> 
>> 1.) 2 committers must understand an LLM-assisted change before it commits. 
>> (Perhaps separately we can explore the question of why we haven’t added any 
>> new committers to the core project for about a year. I’m also still not 
>> entirely sure if it’s acceptable within our guidelines for a committer to +1 
>> a patch after delegating review.)
>> 
>> 2.) Patch authors must demonstrate enough understanding to discuss their own 
>> patch, whether or not parts of it are generated by an LLM.
>> 
>> 3.) The “Assisted-by” tag should be used to indicate any non-trivial LLM 
>> usage in the generation of a patch, just like we have used Co-authored-by 
>> historically.
>> 
>> 4.) Comments and other things that aren't the actual code (but could sow 
>> confusion) should be held to the same standard we'd expect from a human 
>> writer. If we don’t yet agree on that standard, we can formalize enough of 
>> it to guide both humans and LLMs.
`
> I can get behind this proposal but i would tweak it as 1/2 i don't think 
> really need to special case LLM usage
> 
>  1. 2 committers must understand the change before it commits.
>  2. Patch authors must demonstrate enough understanding to discuss their own 
> patch
> Nothing about those 2 need to be scoped to LLM usage and honestly matches 
> most PMCs I have talked to understanding of our bar (as Benedict pointed out, 
> the actual wording could be interpreted to allow rubber stamping from 
> committer)
> 
> As for 3 I am cool with this. ASF recommends the same (it says `Generated-by` 
> but that discount's the human's effort) as its useful for audits and tooling. 
> Having `Assisted-by` tag should not imply anything about the committed patch 
> as it should have gone through the same bar we all expect; its just for tools 
> auditing.
> 
> 
>> On Sep 24, 2026, at 10:37 AM, Aleksey Yeshchenko via dev 
>> <[email protected]> wrote:
>> 
>> Meant "doing away with", sorry. Non-native speaker with a headache here. 
>> Thanks Caleb for spotting.
>> 
>>> On 24 Sep 2026, at 17:35, Aleksey Yeshchenko via dev 
>>> <[email protected]> wrote:
>>> 
>>> P.S. I assume it's obvious from the text above that I don't believe that 
>>> getting away with human code review is a viable option.
>> 
>> 
>>> On 24 Sep 2026, at 17:37, Štefan Miklošovič <[email protected]> wrote:
>>> 
>>> Good call on checkerframework, we even have a patch for it. Work of
>>> Jacek Lewandowski. We might just drive it to completion. Using AI for
>>> finishing it would be quite ironic.
>>> 
>>> (1) https://github.com/apache/cassandra/pull/2370
>>> 
>>> On Thu, Sep 24, 2026 at 6:19 PM Jon Haddad <[email protected]> wrote:
>>>> 
>>>> There are some really good points being brought up about stability of the 
>>>> codebase, maintainability, quality of reviews, correctness bugs, and I 
>>>> agree with all of them.  I think it would be helpful to take a step back 
>>>> and consider how those bugs got there in the first place, how they were 
>>>> fixed, and what we could do to further advance the codebase so they don't 
>>>> creep back.  LLMs can be used either with very tight guardrails, or in 
>>>> what's effectively YOLO mode, and there's a big difference in the quality 
>>>> of the results you get.
>>>> 
>>>> One thing to keep in mind, a lot of the initial code in C* was added 
>>>> without comprehensive testing.  I hope we can all agree that it's a lot 
>>>> easier to break code that doesn't have high quality tests.  During the 
>>>> code freeze, a lot of people people spent several years relentlessly 
>>>> finding and fixing bugs. This was probably a pretty frustrating time for 
>>>> anyone who was focused on fixing other people's bugs when they wanted to 
>>>> build features.  I think we should recognize the effort here and 
>>>> appreciate the foundation that the project stands on now. I can understand 
>>>> how anyone involved with this effort would be apprehensive about seeing 
>>>> years of their life swept away by an agent that was driven by goal seeking 
>>>> to remove all the tests that it broke instead of fixing them.
>>>> 
>>>> When I picked up the work to improve cursor compaction, the first thing I 
>>>> asked myself was how can I make sure I don't break this?  How do I even 
>>>> know it works properly?  There were some tricky parts to the code, and I 
>>>> really didn't want to come in and immediately break stuff.  That's why I 
>>>> started with an entire patch dedicated to adding test infra to it.  90% of 
>>>> the patch was tests, and in my other cursor patches, it remains *at least* 
>>>> 80% of my patches.  It was a *lot* faster to add almost 10K lines of tests 
>>>> that handled a byte for byte differential testing paired with harry to 
>>>> find over 30 bugs that caused cursor to corrupt results.  Range tombstones 
>>>> alone were at least a dozen bugs, but I also found issues with static 
>>>> columns, reverse ordering, etc.  Randomizing schemas and data in burn 
>>>> tests to generate different shapes of data, to ensure they all result in 
>>>> the same output at the end. JMH tests to ensure there weren't performance 
>>>> regressions, hours of profiling. These were all a *lot* easier to do with 
>>>> the LLM helping me out.  In the process I've found bugs that have been 
>>>> lingering in the codebase for years.
>>>> 
>>>> That's a long story, but hopefully we all agree that having comprehensive 
>>>> tests is a great way to ensure that both humans and LLMs don't break 
>>>> things that are working.
>>>> 
>>>> The lesson: we need to keep improving our testing.  Everything that we 
>>>> touch, should be left in a better state than how we found it with regard 
>>>> to test coverage.
>>>> 
>>>> Test coverage isn't everything though, there's always little subtle bugs 
>>>> that don't get found in testing, that can slip in despite our best 
>>>> efforts.  It's debatable if humans will be as good as agents for coding in 
>>>> the long term, for spotting small defects.  I sincerely doubt it.  For the 
>>>> time being though, we still have people involved. It's probably a good 
>>>> time to start using more static analysis tools to identify problematic 
>>>> code and to add this to CI.  Dmitry had a suggestion recently for 
>>>> checkerframework to detect leaking contexts, a problem he spotted when 
>>>> reviewing my branch.  It would be great to have that integrated into our 
>>>> CI and dev workflow so we can simply avoid an entire class of bugs.
>>>> 
>>>> There's also PMD, which is excellent for finding code that can be hard to 
>>>> understand.  I *highly* suggest you all run PMD to analyze for cognitive 
>>>> complexity and high npath scores.  This was made popular by the folks at 
>>>> Sonar and I've found it to be an excellent feedback mechanism for 
>>>> structuring code.  The default max they set is 15, which is the point 
>>>> where it starts to become difficult to verify something works without 
>>>> making a massive investment.  We've got areas in the codebase that are in 
>>>> the hundreds, and some parts even higher.  These have been contributed by 
>>>> humans, and are all high risk points for both humans and agents to start 
>>>> messing around with.  They're also in some fairly critical areas that are 
>>>> very likely to break, so I understand why people would not want an agent 
>>>> anywhere near it.
>>>> 
>>>> Unfortunately, it's not an easy problem to address.  There's so many 
>>>> places where the code is structured in a way that has so many branches, so 
>>>> many conditions, that it's effectively impossible for a human to 
>>>> understand, creating a fear of messing around in it.  There's plenty of 
>>>> areas that deserve extreme scrutiny, and we should be careful of what we 
>>>> add, whether it's human or agent.
>>>> 
>>>> The codebase today requires a high degree of internal knowledge to 
>>>> navigate.  There's land mines everywhere. We should be looking to make 
>>>> conscious improvements by moving the code forward, so it's easier to make 
>>>> changes to small, well tested components with minimal side effects.  Not 
>>>> making it harder for people to use the tools that aid in that process.
>>>> 
>>>> Here's what we could do to achieve the underlying goal of not breaking the 
>>>> DB:
>>>> 
>>>> Add cognitive complexlity and npath via PMD as a feedback mechanism.
>>>> 
>>>> Code that's hard to understand is hard to review.  It's also hard to test. 
>>>> Let's break down the complex code so more people can contribute, safely.
>>>> 
>>>> Add checkerframework to our tooling,
>>>> 
>>>> Properly annotate the codebase for it and reduce the surface area that 
>>>> things can break.  Less brittle codebase = we can move faster.
>>>> 
>>>> Use jacoco to find areas of the codebase with poor testing.
>>>> 
>>>> Let's improve the test coverage there, LLMs are great for this.  We have a 
>>>> ton of static tests, these can become more dynamic, parameterized, and 
>>>> leverage harry.
>>>> 
>>>> Refactor parts of the codebase that have high cognitive complexlity and 
>>>> NPath scores.
>>>> 
>>>> This should be lowered over time to meet some high watermark, say 25 
>>>> maximum, although I'd prefer 15 which is where the Sonar folks settled.
>>>> 
>>>> Move forward moving the codebase to a more modular structure
>>>> 
>>>> We've talked about Gradle on and off - but it can really be a huge help 
>>>> with incremental, modular builds. This is pretty easy to do with an agent 
>>>> and we could have it done in a couple days.
>>>> 
>>>> Enforce boundaries with ArchUnit
>>>> 
>>>> If we want to enforce certain code boundaries, this is the way to do it. 
>>>> Should not be part of manual review.
>>>> 
>>>> Add LLM review for all incoming PRs before a human
>>>> 
>>>> The goal here is to automate the initial part of the review process that 
>>>> reviewers should spot, and raise the bar for the initial contribution.  
>>>> When the code gets reviewed by a human, it should already have passed a 
>>>> large variety of initial checks.  This should shorten the review cycle and 
>>>> result in higher quality patches.  I've had Claude reviewing all my PRs in 
>>>> my personal projects for a while now and it consistently gives great 
>>>> feedback that I almost always incorporate.
>>>> 
>>>> In my ideal world, we'd also auto-format all code
>>>> 
>>>> Consistent formatting throughout the codebase would be amazing, but that's 
>>>> just one man's dream.
>>>> 
>>>> Hopefully there's at least a couple things in this list we could move 
>>>> forward with in the short term, as it'll help improve the code quality 
>>>> regardless of how it's created.
>>>> 
>>>> Jon
>>>> 
>>>> https://checkerframework.org/manual/#aliasing-leaking-contexts
>>>> https://www.sonarsource.com/docs/CognitiveComplexity.pdf
>>>> https://pmd.github.io/pmd/pmd_rules_java_design.html
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Thu, Sep 24, 2026 at 7:38 AM C. Scott Andreas <[email protected]> 
>>>> wrote:
>>>>> 
>>>>> From Benedict:
>>>>> 
>>>>> “I don't know if everyone remembers, but ten years ago Cassandra was full 
>>>>> of serious correctness and stability issues. Despite developing it, I 
>>>>> would not have run it myself or recommend that anyone use it. We have dug 
>>>>> ourselves out of that hole, but it took years of discipline and effort, 
>>>>> and we're still (deservedly) recovering our reputation.”
>>>>> 
>>>>> Expanding on this point for those who may not have been active in the 
>>>>> project at this time —
>>>>> 
>>>>> Apache Cassandra was fundamentally undeployable for four years between 
>>>>> Nov 2015 - 2019. The database literally lost data if you ran a read-only 
>>>>> SELECT query ordered descending (C-14513, C-14515). If you haven’t read 
>>>>> these tickets before, please take a moment to do so.
>>>>> 
>>>>> It took years of careful work via property-based testing, fuzzing, and 
>>>>> deterministic simulation to restore Cassandra’s status as a usable system 
>>>>> of record. Once 14513 and 14515 were identified, nearly 30 additional 
>>>>> critical data loss and incorrect response bugs were identified.
>>>>> 
>>>>> It is essential for the project’s future that we don’t regress to this 
>>>>> state chasing AI-generated features motivated by fear. The fact that 
>>>>> examples cited in this thread which boast shiny features but have 
>>>>> critical shortcomings unknown to their author supports this argument.
>>>>> 
>>>>> The most common path for large corpuses of AI-generated software is 
>>>>> elation and reveling in a feature matrix, followed by abandonment.
>>>>> 
>>>>> I endorse this point:
>>>>> 
>>>>> “Let's use this new technology to improve the quality of our 
>>>>> contributions, not squander our hard-earned gains in the name of speed. 
>>>>> It will be hard to recover our reputation a second time.”
>>>>> 
>>>>> Patrick, I don’t want your note regarding a TCM issue to go unaddressed. 
>>>>> Please file a Jira ticket and the patch if you like. I can’t comment on 
>>>>> the patch as I haven’t seen it, but together we will solve the problem.
>>>>> 
>>>>> – Scott
>>>>> 
>>>>>> On Sep 24, 2026, at 4:01 AM, Benedict Elliott Smith 
>>>>>> <[email protected]> wrote:
>>>>>> 
>>>>>> Hi Patrick,
>>>>>> 
>>>>>> As I mentioned in my reply to David, I would be happy to create a carve 
>>>>>> out for shallow and localised bug fixes in the "Permitted" section. 
>>>>>> Would this alleviate some of your concerns regarding your ability to 
>>>>>> contribute to the project?
>>>>>> 
>>>>>> I appreciate your pointing out Ferrosa's Accord implementation however, 
>>>>>> as it is a *great* example of the problems we're leaping into. I took a 
>>>>>> look, and within about 30s found that the protocol is fundamentally 
>>>>>> incorrect, having failed to address CASSANDRA-18365. This is despite 
>>>>>> claiming to be tested with Jepsen that should in principle find this 
>>>>>> fault. I followed up by using Claude to interrogate the implementation 
>>>>>> further, and immediately found other serious correctness issues.
>>>>>> 
>>>>>> I use LLMs daily now to help facilitate Accord development, and while 
>>>>>> they are powerful they are NOT able to author the code themselves, even 
>>>>>> when building upon a strong human-authored foundation.
>>>>>> 
>>>>>> I don't know if everyone remembers, but ten years ago Cassandra was full 
>>>>>> of serious correctness and stability issues. Despite developing it, I 
>>>>>> would not have run it myself or recommend that anyone use it. We have 
>>>>>> dug ourselves out of that hole, but it took years of discipline and 
>>>>>> effort, and we're still (deservedly) recovering our reputation.
>>>>>> 
>>>>>> Let's use this new technology to improve the quality of our 
>>>>>> contributions, not squander our hard-earned gains in the name of speed. 
>>>>>> It will be hard to recover our reputation a second time.
>>>>>> 
>>>>>> 
>>>>>>> On 2026/09/23 19:16:17 Patrick McFadin wrote:
>>>>>>> I was waiting for this moment to hit our project and I'm glad we're 
>>>>>>> here. I
>>>>>>> am deeply concerned for our project and its future, as we have 
>>>>>>> increasingly
>>>>>>> made it difficult to contribute. I had hoped that this new era of
>>>>>>> software tools powered by AI would expand the project's reach and bring
>>>>>>> more diverse thoughts and ideas. This policy proposal is the exact 
>>>>>>> opposite
>>>>>>> of what we need. We have been sitting on a Cassandra 6 release alpha for
>>>>>>> months. We need to accelerate and embrace new ways of being or be left
>>>>>>> behind. As I read that policy, my first and gut level reactions:
>>>>>>> - It comes across as elitist and class protectionism. Committer should 
>>>>>>> not
>>>>>>> be special but this proposal makes that designation even more sacred.
>>>>>>> - It signals that our project is so fragile that only a few people 
>>>>>>> "Really
>>>>>>> understand it" That's some SQLite vibes right there.
>>>>>>> - Trying to fix a problem that doesn't exist
>>>>>>> Sadly, i think this policy change would also exclude a lot of comitters.
>>>>>>> We aren't alone in this moment. The Linux project just went through
>>>>>>> this. You can find the thread with a simple Google, but similar hard
>>>>>>> feelings were being expressed "AI is going to ruin our project!", "The
>>>>>>> unwashed masses are going to contribute terrible code!", "We have to
>>>>>>> protect our precious status as Linux maintainers!"  Linus being Linus, 
>>>>>>> was
>>>>>>> deeply invloved and they adopted a super simple statement that covers 
>>>>>>> all
>>>>>>> bases. Human or Human using AI. “You are expected to understand and to 
>>>>>>> be
>>>>>>> able to defend everything you submit.”  Love that.
>>>>>>> In the larger picture, I'll restate. I'm worried for our project. In 
>>>>>>> late
>>>>>>> 2025(Opus 4.5 IYKYK), early 2026, AI coding LLMs turned a real corner 
>>>>>>> and
>>>>>>> in the hands of somebody that knows how to build software, this tool is
>>>>>>> like jet fuel. Here's some examples of new projects being hyper fueled 
>>>>>>> by
>>>>>>> AI coding tools.
>>>>>>> Apache Iggy - Complete rust replacement of kafka. Crazy fast velocity
>>>>>>> Turso - Rust re-write of SQLite
>>>>>>> Bun - Rust re-write of itself from Zig.
>>>>>>> Think this couldn't happen to us? Already has:
>>>>>>> https://github.com/ferrosadb/ferrosa. Ben is using it to power his own
>>>>>>> startup, but it was him alone using a ton of local AI coding agents. He
>>>>>>> even implemented Accord. Yeah...
>>>>>>> The cracks are already starting to show. There is a black market 
>>>>>>> economy of
>>>>>>> Cassandra patches happening now. Not going to name names or call people
>>>>>>> out,  but there are fixes and optimizations living in branches outside 
>>>>>>> of
>>>>>>> the Cassandra project. Why? I'll use myself as an example. I fixed a 
>>>>>>> nasty
>>>>>>> bug I ran into with TCM a few weeks ago. Wrote the tests. It passes CI 
>>>>>>> and
>>>>>>> lives in my personal branch. I'm sitting here really wondering if I 
>>>>>>> want to
>>>>>>> go through the ritual humiliation of being roasted for using AI to fix 
>>>>>>> it.
>>>>>>> Me. I am worried about contrinuting code the Cassandra. What the hell 
>>>>>>> does
>>>>>>> that say?
>>>>>>> I have my CQLite project that I've been doing a release around once a
>>>>>>> month. I would love to donate that to the Cassandra project but I 
>>>>>>> wouldn't
>>>>>>> if it essentially killed any progress.
>>>>>>> My larger counter proposal would be to:
>>>>>>> - Adopt the “You are expected to understand and to be able to defend
>>>>>>> everything you submit.” approach the Linux project has adopted.
>>>>>>> - Loosen up the contributor process and our worry on trunk. Let 1000
>>>>>>> flowers bloom and bring it in.
>>>>>>> - And finally, to give some people more peace of mind and open more 
>>>>>>> doors,
>>>>>>> adopt what other projects have done and provide more pluggability. Let 
>>>>>>> new
>>>>>>> ideas have an easy place to connect.
>>>>>>> We are at a fork in the road. What are we going to do? And then I have 
>>>>>>> to
>>>>>>> ask myself, what am I going to do as a contributor?
>>>>>>> Patrick
>>>>>>> On Wed, Sep 23, 2026 at 6:16 AM Blake Eggleston <[email protected]>
>>>>>>> wrote:
>>>>>>>> I’m not necessarily opposed to having a policy, but so far we have some
>>>>>>>> specific proposals addressing a problem statement that’s very nebulous.
>>>>>>>> What is the community failing to do on its own that we’re trying to 
>>>>>>>> correct
>>>>>>>> with policy? What outcomes are we trying to create or prevent? Having 
>>>>>>>> some
>>>>>>>> examples and specific problems to discuss would help focus the 
>>>>>>>> conversation.
>>>>>>>>> On Wed, Sep 23, 2026, at 4:34 AM, Shailaja Koppu via dev wrote:
>>>>>>>> Benedict,
>>>>>>>> Thanks for clarifying. My concern still remains. This criteria would be
>>>>>>>> difficult to define and apply consistently. What counts as “similar” 
>>>>>>>> scope
>>>>>>>> or area, “mostly correct,” or sufficiently independent work? More
>>>>>>>> importantly, how do we prevent such vague criteria from creating an
>>>>>>>> informal hierarchy where some contributors work is routinely accepted 
>>>>>>>> while
>>>>>>>> others is routinely rejected?
>>>>>>>> If the intent is to limit AI-assisted code changes to Cassandra
>>>>>>>> contributors, or to contributors who have previously worked in that
>>>>>>>> component without AI, that would at least be clear and enforceable.
>>>>>>>>> On Sep 23, 2026, at 12:01 PM, Benedict Elliott Smith <
>>>>>>>> [email protected]> wrote:
>>>>>>>>> Core code changes
>>>>>>>>> Chris: Do you object to the first or second line you quote? Because 
>>>>>>>>> the
>>>>>>>> first line is effectively motivation for the second line, and can be
>>>>>>>> removed (or more clearly combined). If it’s the second line, then I do 
>>>>>>>> not
>>>>>>>> think this is an unreasonable expectation, and we can get into a proper
>>>>>>>> debate about it.
>>>>>>>>> Shailaja, since you only snipped the first sentence, your concerns 
>>>>>>>>> might
>>>>>>>> also be mostly answered by this clarification? “Minimal third-party
>>>>>>>> guidance” implies you have some concerns about the second line, but 
>>>>>>>> all of
>>>>>>>> our policies have some ambiguity because legalese is even worse. I 
>>>>>>>> don’t
>>>>>>>> think the ambiguity here would be challenging to navigate though we can
>>>>>>>> certainly refine it. This specific snippet is meant to convey an
>>>>>>>> expectation that a contributor has autonomously produced patches of 
>>>>>>>> similar
>>>>>>>> scope that were mostly correct, so that they have demonstrated the 
>>>>>>>> level of
>>>>>>>> understanding necessary to guide another party to a successful patch 
>>>>>>>> (i.e.
>>>>>>>> an LLM in this case).
>>>>>>>>> On 2026/09/23 10:54:16 Benedict Elliott Smith wrote:
>>>>>>>>>> Thanks everyone for your input so far. I’ll respond in brief to the
>>>>>>>> main themes, in (mostly) separate emails so they can each have their 
>>>>>>>> own
>>>>>>>> debate chain.
>>>>>>>>>> Should we have a policy (Blake/Josh*/Jon/Dinesh)
>>>>>>>>>> I think we would all agree that LLMs represent the biggest change to
>>>>>>>> this community (and software more generally) since its inception, and 
>>>>>>>> we
>>>>>>>> all now have enough experience with the technology to have formed 
>>>>>>>> opinions
>>>>>>>> about how it is best managed. We also evidently have not all arrived 
>>>>>>>> at the
>>>>>>>> same conclusions. In this situation, it would be an abdication of our
>>>>>>>> responsibilities as a management committee to not agree *some* policy.
>>>>>>>>>> I intend to conduct straw polls as the discussion evolves, so if you
>>>>>>>> prefer an alternative policy - or modifications to this policy - I 
>>>>>>>> would
>>>>>>>> encourage you to make those alternative proposals.
>>>>>>>>>> *Veto/Consensus (Josh)
>>>>>>>>>> It was fair to call out my poor use of language on this topic, so let
>>>>>>>> me rephrase a little. The community is built on consensus, and work 
>>>>>>>> should
>>>>>>>> not be merged when there are outstanding concerns to address. The 
>>>>>>>> explicit
>>>>>>>> -1 should only be used rarely, because the prior expectation should 
>>>>>>>> prevent
>>>>>>>> it ever being needed. I (and others) have outstanding concerns on LLM
>>>>>>>> generated work that can only be addressed through this process right 
>>>>>>>> here,
>>>>>>>> so to merge such work while maintaining the community’s consensus we 
>>>>>>>> must
>>>>>>>> agree some policy.
>>>>>>>>>> On 2026/09/23 09:58:27 Shailaja Koppu via dev wrote:
>>>>>>>>>>> I am strongly -1 on this
>>>>>>>>>>> - Core code changes made by LLM may only be proposed by contributors
>>>>>>>> with demonstrated expertise
>>>>>>>>>>> That creates a new, subjective privileged class of contributors and
>>>>>>>> turns a tool choice into an eligibility test. Who decides whether 
>>>>>>>> expertise
>>>>>>>> has been “demonstrated,” what counts as “minimal third-party 
>>>>>>>> guidance,” and
>>>>>>>> how could those judgments be applied consistently or fairly?
>>>>>>>>>>> Apache already has a better model, anyone may contribute, trust and
>>>>>>>> additional repository privileges are earned transparently over time. 
>>>>>>>> The
>>>>>>>> ASF describes its communities as flat, and says that newcomer ideas 
>>>>>>>> have as
>>>>>>>> much input as those from original creators. We should not add a 
>>>>>>>> separate,
>>>>>>>> informal hierarchy in which certain people may use common development 
>>>>>>>> tools
>>>>>>>> while others may not.
>>>>>>>>>>>> On Sep 23, 2026, at 6:33 AM, Chris Lohfink <[email protected]>
>>>>>>>> wrote:
>>>>>>>>>>>> - Core code changes made by LLM may only be proposed by 
>>>>>>>>>>>> contributors
>>>>>>>> with demonstrated expertise
>>>>>>>>>>>> - Must have produced similar patches in size, scope and area
>>>>>>>> unassisted and with minimal third-party guidance
>>>>>>>>>>>> I really don't like this one or its wording. Definitely too "the
>>>>>>>> peasants are getting uppity lets build a wall". Lets not let a 
>>>>>>>> subjective
>>>>>>>> thing like demonstrated expertise (who decides that?) be if it's ok or 
>>>>>>>> not.
>>>>>>>> Hold the same standards for code quality and process for it all. I 
>>>>>>>> don't
>>>>>>>> want this to be: only people on the storage team in Apple can use AI.
>>>>>>>>>>>> Chris
>>>>>>>>>>>> On Wed, Sep 23, 2026 at 12:16 AM <[email protected] <mailto:
>>>>>>>> [email protected]>> wrote:
>>>>>>>>>>>>> I agree with Stefan and think this is both a reasonable and
>>>>>>>> thoughtful proposal.
>>>>>>>>>>>>> Here are some things I like about it:
>>>>>>>>>>>>> – It outlines areas where LLM usage is unambiguously useful to the
>>>>>>>> project’s developers and users.
>>>>>>>>>>>>> – It defines a spectrum of recommendations and cautions.
>>>>>>>>>>>>> – The only prohibited areas are extremely narrow and say nothing
>>>>>>>> about code at all.
>>>>>>>>>>>>> Some in this thread are responding as if this proposal seeks to
>>>>>>>> prohibit or sharply limit use of LLMs. In fact, it’s one of the most 
>>>>>>>> open
>>>>>>>> and welcoming I’ve seen for an OSS project of our size where many are
>>>>>>>> adopting policies that simply ban them entirely. I’ve re-appended the
>>>>>>>> proposal below my message as it seems to have been lost in threaded
>>>>>>>> replies, and would encourage folks to give it a second read.
>>>>>>>>>>>>> Some brief thoughts based on my own use of LLMs:
>>>>>>>>>>>>> – I find them fantastically useful for reviewing and identifying
>>>>>>>> problems that have slipped through review - primarily via Alex Petrov’s
>>>>>>>> /deep-review skill, which I have running in a VM in a loop executing 
>>>>>>>> over
>>>>>>>> every new commit in the project as of a few days ago. I will be 
>>>>>>>> posting a
>>>>>>>> few hand-authored Jira tickets based on findings that appear 
>>>>>>>> legitimate to
>>>>>>>> me. For now, the loop is posting them as issue drafts for my own 
>>>>>>>> review on
>>>>>>>> my personal fork which you can find here:
>>>>>>>> https://github.com/cscotta/cassandra/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug
>>>>>>>>>>>>> – They’re great for enabling use of model checkers and formal
>>>>>>>> methods where such work would have previously been prohibitively 
>>>>>>>> expensive,
>>>>>>>> such as Blake’s work on a TLA+ proof of aspects of Mutation Tracking 
>>>>>>>> and
>>>>>>>> Benedict/Fedor’s work on a machine-checkable proof of the Accord 
>>>>>>>> protocol
>>>>>>>> in Lean.
>>>>>>>>>>>>> – They are stunning for allowing me to experiment with ideas that
>>>>>>>> would have otherwise been a summer internship’s scope of work. Some
>>>>>>>> examples include an io_uring prototype, exploring the impact of
>>>>>>>> page-aligned compressed chunk sizes, an API shim bridging the 3.x and 
>>>>>>>> 4.x
>>>>>>>> Java Drivers, and potential enhancements to Zstandard.
>>>>>>>>>>>>> – And they shine when given grunt-work that is critical to the
>>>>>>>> project but a miserable labor for humans, such as triaging, 
>>>>>>>> reproducing,
>>>>>>>> and root-causing flaky tests, which David Capwell now has running in a 
>>>>>>>> loop
>>>>>>>> to help us improve CI stability in the project.
>>>>>>>>>>>>> I never thought I’d be so positive on what’s possible via language
>>>>>>>> models a year ago. At the same time, I also agree that they present
>>>>>>>> challenges and risks that can be managed through thoughtful discussion 
>>>>>>>> and
>>>>>>>> policy. Some of the concerns that I think are important to guard 
>>>>>>>> against
>>>>>>>> include:
>>>>>>>>>>>>> – Asymmetry of effort between author and reviewers: As
>>>>>>>> token-generating machines, LLMs can generate diffs of extraordinary 
>>>>>>>> size
>>>>>>>> very rapidly. /deep-review is great for chewing through diffs and
>>>>>>>> identifying defects. But it should be used by the contributor 
>>>>>>>> themselves to
>>>>>>>> identify issues – not to replace the role of the reviewer with more
>>>>>>>> electricity. The role of the reviewers extends beyond identifying and
>>>>>>>> highlighting defects. It encompasses architecture, harmony with the
>>>>>>>> existing codebase, thinking ahead to future evolution of the project, 
>>>>>>>> and
>>>>>>>> replicates context on the project as new code is committed. These 
>>>>>>>> functions
>>>>>>>> cannot be automated away.
>>>>>>>>>>>>> – Hesitancy of authors to engage manually with code they have
>>>>>>>> generated: This is not specific to Cassandra, but it is a behavior 
>>>>>>>> that I
>>>>>>>> have seen in several “highly-electric” projects. There’s a bimodal 
>>>>>>>> tendency
>>>>>>>> toward code that is entirely generated or entirely human-authored - 
>>>>>>>> but it
>>>>>>>> is rare for someone to prepare an AI-authored patch to take an offramp 
>>>>>>>> and
>>>>>>>> spend a significant amount of time refining the work by hand in an IDE.
>>>>>>>> This hesitancy toward human participation in authorship of 
>>>>>>>> LLM-generated
>>>>>>>> code is very concerning to me.
>>>>>>>>>>>>> – Harmony with the existing codebase: Due to the tunnel-vision of
>>>>>>>> context windows, LLMs are generally unaware of conventions and norms
>>>>>>>> present in codebases and very frequently reinvent concepts in a 
>>>>>>>> generation
>>>>>>>> turn to suit a goal without view of the project’s overall architecture.
>>>>>>>> This results in a profusion of messy and duplicated concepts that 
>>>>>>>> gradually
>>>>>>>> sprawl about a codebase.
>>>>>>>>>>>>> Again, none of these are grounds for prohibition of usage of
>>>>>>>> language models in developing the project. They’re just problems we 
>>>>>>>> need to
>>>>>>>> bear in mind and guard against – and I think the proposal is designed 
>>>>>>>> to do
>>>>>>>> just that.
>>>>>>>>>>>>> I’m thrilled by the potential of LLMs to improve Apache Cassandra
>>>>>>>> and we already see it happening through a vast number of issues that 
>>>>>>>> are
>>>>>>>> being reported and fixed. But there’s also danger in taking ATVs down a
>>>>>>>> hiking trail full of people.
>>>>>>>>>>>>> Regarding the prohibition on prose, I’ll simply say: I recently
>>>>>>>> found myself in a scenario where I found a Claude-authored document so
>>>>>>>> inscrutable that I piped it back into a model, directed it to rewrite 
>>>>>>>> it in
>>>>>>>> ASD-STE100, read it myself, and responded based on the summarization. 
>>>>>>>> As a
>>>>>>>> humanities grad, this is probably the worst language crime I have
>>>>>>>> committed. But it was in response to language that was itself so
>>>>>>>> idiosyncratic that it was unreadable to me in its original form. I hope
>>>>>>>> this never happens in the Apache Cassandra project.
>>>>>>>>>>>>> I’ll close with a quote from an excellent article written by Colin
>>>>>>>> Breck, an engineer who works on large-scale data systems:
>>>>>>>> https://blog.colinbreck.com/i-dont-want-to-read-what-you-didnt-write/
>>>>>>>>>>>>> Colin wrote:
>>>>>>>>>>>>>> I don’t want to live in a world where you use AI to summarize
>>>>>>>> something important into unreadable text, and then I use AI in an 
>>>>>>>> attempt
>>>>>>>> to decipher it. I want to hear you, imperfections and all. I want your
>>>>>>>> interpretation of aesthetics, beauty, quality, relationship, time. I 
>>>>>>>> want
>>>>>>>> to know how you feel. I want you to cut through and tell me what really
>>>>>>>> matters.
>>>>>>>>>>>>>> Intentional writing will likely become more valuable. People who
>>>>>>>> write, and write to think, to think deeply and carefully, or to 
>>>>>>>> create, to
>>>>>>>> share, or to capture something important without explicitly expressing 
>>>>>>>> it
>>>>>>>> will continue to write and produce original work. The people who never 
>>>>>>>> were
>>>>>>>> writers will use AI to produce lots of text.
>>>>>>>>>>>>> I hope that our culture can remain one of intentional writing and
>>>>>>>> intentional engineering. I enjoy reading the voice of the author in
>>>>>>>> comments, code, and tickets in Cassandra – the different ways we use
>>>>>>>> language based on where we grew up and how we learned English, the
>>>>>>>> translated idioms from our various backgrounds, and terse comments that
>>>>>>>> recognize the difference between code whose function is obvious and 
>>>>>>>> what
>>>>>>>> warrants genuine exposition. When I read code in Cassandra, it’s a 
>>>>>>>> delight
>>>>>>>> to recognize the author based on their writing style before flipping on
>>>>>>>> `git annotate` to reveal the origin.
>>>>>>>>>>>>> I’d encourage folks to re-read the original proposal below. It is
>>>>>>>> very permissive. The guidance strikes me not just as reasonable, but
>>>>>>>> genuinely important to maintaining the health of the project.
>>>>>>>>>>>>> – Scott
>>>>>>>>>>>>> =====
>>>>>>>>>>>>> Encouraged:
>>>>>>>>>>>>> - Reviewing and otherwise validating human-authored patches before
>>>>>>>> submission
>>>>>>>>>>>>> - Debugging, diagnosing etc
>>>>>>>>>>>>> Permitted:
>>>>>>>>>>>>> - Generating or modifying tests, scripts, tooling or any other
>>>>>>>> non-user facing changes
>>>>>>>>>>>>> - Minor changes to human-authored patches that are carefully
>>>>>>>> reviewed by the author
>>>>>>>>>>>>> Restricted:
>>>>>>>>>>>>> - Core code changes made by LLM may only be proposed by 
>>>>>>>>>>>>> contributors
>>>>>>>> with demonstrated expertise
>>>>>>>>>>>>> - Must have produced similar patches in size, scope and area
>>>>>>>> unassisted and with minimal third-party guidance
>>>>>>>>>>>>> - Core code changes made by LLM require an additional reviewer
>>>>>>>>>>>>> - LLM review is not a substitute for human review, and must be 
>>>>>>>>>>>>> used
>>>>>>>> only to augment a complete and independent human understanding of the 
>>>>>>>> patch.
>>>>>>>>>>>>> Prohibited:
>>>>>>>>>>>>> - All public prose must be human authored. This includes inline
>>>>>>>> comments, docs, posts to Jira etc.
>>>>>>>>>>>>> All LLM generated changes MUST be disclosed:
>>>>>>>>>>>>> - Outlined to any reviewer;
>>>>>>>>>>>>> - Summarised in the commit message;
>>>>>>>>>>>>> - Large blocks or files must be individually marked with some 
>>>>>>>>>>>>> agreed
>>>>>>>> message like "created by <some AI>"
>>>>>>>>>>>>> =====
>>>>>>>>>>>>>> On Sep 22, 2026, at 9:13 PM, Dinesh Joshi <[email protected]
>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>>>>>> On Tue, Sep 22, 2026 at 3:28 AM Benedict <[email protected]
>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>>>>>>> Restricted:
>>>>>>>>>>>>>>> - Core code changes made by LLM may only be proposed by
>>>>>>>> contributors with demonstrated expertise
>>>>>>>>>>>>>>> - Must have produced similar patches in size, scope and area
>>>>>>>> unassisted and with minimal third-party guidance
>>>>>>>>>>>>>> I am -1 on this. This sounds like gate keeping attempt. It 
>>>>>>>>>>>>>> narrowly
>>>>>>>> limits the pool to a few people on the project that have historically
>>>>>>>> contributed to certain parts of the codebase. This policy will prohibit
>>>>>>>> skilled software engineers with domain expertise from proposing LLM
>>>>>>>> assisted changes simply because they have not contributed to the 
>>>>>>>> project.
>>>>>>>> This is unrealistic and a net negative for the project to attract 
>>>>>>>> talent
>>>>>>>> and grow our community.
>>>>>>>>>>>>>>> - Core code changes made by LLM require an additional reviewer
>>>>>>>>>>>>>> Can you be more precise what is this in addition to? How many 
>>>>>>>>>>>>>> total
>>>>>>>> reviewers do you expect and what is the purpose of additional 
>>>>>>>> reviewer? and
>>>>>>>> why?
>>>>>>>>>>>>>> Taking a step back - what are you trying to solve here?
>>>>>>>>>>>>>> Dinesh

Reply via email to