There is an old saying in the software industry: The structure of a system follows from the structure of the organization that created it (Conway's Law). Seriously, the main, first question for your end is who owns the applications in terms of executive management, such that if management makes a decision that dramatically affects the app's impact on the cluster, is it likely that they will have done so with the concurrence of management who owns the other app. Trust me, you do not want to be in the middle when two managers are in dispute over whose app is more important. IOW, if one manager owns both apps, you are probably safe, but if two different managers might have differing views of each other's priorities, tread with caution.
In any case, be prepared to move one of the apps to a different cluster if and when usage patterns cause them to conflict. There is also the concept of devOps, where the app developers also own operations. You really can't have two separate development teams administer operations for one set of hardware. If you are dedicated to operations for both app teams and the teams seem to be reasonably compatible, then it could be fine. In short, sure, technically a single cluster can support any number of key spaces, but mostly it will come down to whether there might be an excess of contention for load and operations of the cluster in production. And then little things like software upgrades - one app might really need a disruptive or risky upgrade or need to bounce the entire cluster, but then the other app may be impacted even though it had no need for the upgrade or be bounced. Are the apps synergistic in some way, such that there is an architectural benefit from running on the same hardware? In the end, the simplest solution is typically the better solution, unless any of these other factors loom too large. -- Jack Krupansky On Thu, Apr 2, 2015 at 9:06 AM, Ian Rose <ianr...@fullstory.com> wrote: > Hi all - > > We currently have a single cassandra cluster that is dedicated to a > relatively narrow purpose, with just 2 tables. Soon we will need cassandra > for another, unrelated, system, and my debate is whether to just add the > new tables to our existing cassandra cluster or whether to spin up an > entirely new, separate cluster for this new system. > > Does anyone have pros/cons to share on this? It appears from watching > talks and such online that the big users (e.g. Netflix, Spotify) tend to > favor multiple, single-purpose clusters, and thus that was my initial > preference. But we are (for now) no where close to them in traffic so I'm > wondering if running an entirely separate cluster would be a premature > optimization which wouldn't pay for the (nontrivial) overhead in > configuration management and ops. While we are still small it might be > much smarter to reuse our existing clusters so that I can get it done > faster... > > Thanks! > - Ian > >