On Tue, Jul 11, 2017 at 11:15 AM, Русак Максим <[email protected]> wrote:
> Hello, Gossip community. > Today I want to discuss our vision of Gossip project, its purpose and > future steps. > I think the main problem is that even I have not clear vision of our goals > and future steps, I think all members of our small community - 5-10 > members, have their our unique vision - it's illy. > Are we just implementation of Gossip? Or do we want to implement much more > algorithms and to solve more problems? If yes, what problems? > Who is our user in both cases? > I think without this understanding and obtaining first users quickly > community can fall apart. > > I think our goal now: > 1. Formulate goals and principles of Apache Gossip > 2. After that we'll understand who is our exemplary user, which problems > we can solve for him > 3. Then we'll understand the shortest path to a real adaptation. We'll get > one real user and do all stuff to make Gossip decent for him. > > I'm GSoC participant, I have a lot of time now to work and I want to move > Gossip to the new level. My tasks are CRDTs, SWIM and Consensus. > For example, I can't understand which of these tasks will lead us to users > and to what kind of users? > CRDT umbrella task (GOSSIP-67) has a lot of CRDTs, I implemented almost > all of them, two remaining Crdts are so rare and complicated that I think > there is no need to implement them. I think even some of already > implemented are not necessary. > The same situation with SWIM. We have some algorithm now, but the system > in general is not usable by anybody, we can't understand is this algorithm > good or not? We mustn't fabricate needs of our users, we should analyze > problems of real users. > The same with Consensus. Is it in our plan and does it correspond to our > vision? Is there anybody who is interested in it? > > "Features for features" is not our goal. "Features for solving users' > pain" have sense. > I want to bring you one example of strong community and successful > company. It's Hashicorp. They have SWIM implemented and running in > production on thousands of machines. And they not just implement the most > modern algorithms. They do research and innovations. And it's not only due > to their passion to algorithms, it's due to pain of their users, their > clear vision and desire to solve users' problems. > It's the only way to build big robust community (and company like > Hashicorp) - formulate purpose and aim on obtaining users. > So let's think about our understanding of Apache Gossip and decide whether > SWIM or Consensus is highest priority to obtain first users or not? > If we decide that it is, I'll do it with pleasure. If not, let's compose > plan to first users and I'll bring them. > > Thanks, Maxim Rusak > Maxim, Apache follows a "Scratch an itch" philosophy. https://commons.apache.org/volunteering.html. This is different from a traditional software product or consulting company. We do not need to make a "road map" or decide who are "users" are. You and I are both volunteers to the Gossip effort. If you say that the other two CRDT types we have ticket are ticket are rare and complicated, we can close them as WONT_FIX, or we can leave them open in case someone else wants to work on them. That is a discussion we should have possibly by a case by case basis possibly inside the ticket. Implicitly we understand that for Gossip to be successfully then people have to use it. A key part of that is having features that matter to people. "So let's think about our understanding of Apache Gossip and decide whether SWIM or Consensus is highest priority to obtain first users or not?" I am not a business analyst. These are things I know: 1) Riak has CRDT support 2) Spark uses a gossip layer 3) Cassandra Uses a gossip layer 4) zookeeper has watchers (close to our event listeners) 5) hashicorp has a product you mentioned 6) akka has crdt support We outlined some possible end-goals user cases from Gossip when we proposed it to the incubator. I have also worked with some other apache projects looking for possible implementations of Gossip such as: https://issues.apache.org/jira/browse/IGNITE-4837. I do not understand YOUR confusion about YOUR GSOC proposal for SWIM. The ticket is self explaining: We want to implement SWIM, so that gossip can scale to larger numbers of nodes. We DO not need to do it expressly to "find users" because Gossip is not a for profit company. YOU are working on the ticket because YOU find it interesting and the committers agreed it was interesting enough to make a GSOC proposal for it, GSOC found it interesting enough not to reject it as spam. Gossip is not a for profit company, but that does not mean we should not attempt to solve problems of real users, have a road map, or get the software in many peoples hands. How do we do that? There is no simple answer. I think the primary vehicle is blogging and community. For example I asked everyone to write up their GSOC work into blogs: - Wrote a blog regarding Data Change Event Listeners - https://medium.com/@mirage20/listening-to-data-change- events-in-apache-gossip-a0f0a4ea4c21 <https://medium.com/@mirage20/listening-to-data-change-events-in-apache-gossip-a0f0a4ea4c21> - Wrote a blog regarding Data Replication Control - https://medium.com/@mirage20/data-replication-control-in- apache-gossip-35777771e2bb I can tweet out these blogs, some people follow me, they might re-tweet, word of mouth we get users who try software or committers interested in scratching their own itch. I suggest some reading about the Apache-Way: https://www.apache.org/foundation/how-it-works.html . Also I suggest starting to fill out details of your tickets and creating specific threads on the message board. IE what are you researching about swim? What were the conclusions? What are other alternatives? The ticket is basically empty https://issues.apache.org/jira/browse/GOSSIP-51.
