incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Incubator Wiki] Update of "DianaProposal" by Otavio Santana
Date Sat, 25 Mar 2017 18:12:22 GMT
Dear wiki user,

You have subscribed to a wiki page "Incubator Wiki" for change notification.

The page "DianaProposal" has been deleted by Otavio Santana:

Project moving to Eclipse Foundation

- ## page was renamed from CategoryHomepage
- = Apache Diana =
- ==== Why Diana? ====
- In Roman mythology, Diana was the goddess of the hunt, the moon and nature being associated
with wild animals and woodland, and having the power to talk to and control animals. She was
eventually equated with the Greek goddess Artemis, though she had an independent origin in
Italy. Diana was worshipped in ancient Roman religion and is revered in Roman Neopaganism
and Stregheria. Diana was known to be the virgin goddess of childbirth and women. She was
one of the three maiden goddesses — along with Minerva and Vesta — who swore never to
- In Java, it is the API for NoSQL database persistence. Basically Diana gonna be an abstract
API to communicate a Java application to several NoSQL database.
- ==== Abstract ====
- Apache Diana is a flexible and extensible API to connect NoSQL databases. It brings an easy
interface to support key-value, column family, document oriented and graph databases as JDBC
is for SQL databases.
- ==== Proposal ====
- The basic building blocks hereby are:
-  * A simple API to support Column NoSQL Database
-  * A simple API to support Key-value NoSQL Database
-  * A simple API to support Graph NoSQL Database
-  * A simple API to support Document Database
-  * Convention over configuration
-  * Support for asynchronous queries
-  * Support for asynchronous write operations
-  * An easy API to implement, so that NoSQL vendors can comply with it  and test by themselves.
- The API's focus is on simplicity and ease of use. Developers should only have to know a
minimal set of artifacts to work with the solution. The API is built on latest Java 8 features
and therefore fit perfectly with the functional features of Java 8. 
- Additionally, Apache Diana will provide 
-  * A Java SE based implementation with minimal features and dependencies. 
-  * A Java EE extension module for integration with Java EE
-  * Once Java ME supports Lambdas, default methods, method references and functional interfaces,
an implementation targeting Java ME should be provided as well. 
-  * Extension modules for different features. 
- ==== Background ====
- There is a global initiative running now (as of July/2016), for about a year, lead by Otavio
Santana to standardize NoSQL persistence in Java EE and SE. Due to several reasons, it seems
most sensible to start an OSS project on the topic to join forces that actively want to contribute
to the project. It is highly probable that standardization will be started through this apache
- ==== Initial Goals ====
- The initial goals of the Apache Diana project are to:
-  * Receive code donations from
-  * Setup the governance structure of the project
-  * Ensure all donated code is appropriately licensed under the Apache License
-  * Define the project modules and structure (API, implementation modules (initially for
NoSQL databases, adapter modules, examples)
-  * Provide examples demonstrating feature usage
-  * Produce releases based on a schedule created by the PMC
-  * Attract contributions from the greater Java community
-  * Setup collaboration with other projects and the JCP to bring in ideas and enhancement
proposals, e.g. to Java EE 9
- ==== Meritocracy ====
- We plan to do everything possible to encourage an environment that supports meritocracy.
We did the same with JSR 354, where people throughout the world helped us get the RI/TCK to
a very good level. Similarly, whenever possible, we encouraged people to join the expert group,
so they also would be capable of contributing to the API directly. In all cases we discussed
all questions and feedback transparently, regardless if it was an EG member or just a member
of one Hackday or Hackergarten.
- ==== Community ====
- The project initiative already is significantly supported by JUGs such as SouJava, JavaBahia,
LJC, iJUG, Berlin Brandenburg JUG, JUG Zurich, as well as companies such as ToolsCloud, GlobalCode,
Jelastic. It is expected that support will raise very quickly so the library will evolve and
be widely used as well.
- ==== Homogenous Developers ====
- The current list of committers includes developers from several different companies plus
many independent volunteers. The committers are geographically distributed across the U.S.,
Brazil, Europe, and Asia. They are experienced with working in a distributed environment.
- ==== Relationships with Other Apache Products ====
- The project's core API will be independent of any other projects:
-  * The API should be implementable by different providers, mainly NoSQL vendors, and  easily
tested by TCK.
-  * The API should if possible have minimal dependencies (or even be standalone), so it is
highly portable to different environments.
-  * Apache Diana will provide a minimal standalone implementation as well. Nevertheless it
will be possible that other databases implement the API as well, e.g. Apache Commons Configuration
(especially version 2).
- Diana will also provide adapter modules for other technologies/projects, so the solution
can inter-operate with existing frameworks and solutions as a provider similarly. This explicitly
also includes the possibility to use Diana as a driver communication source for.
-  * Spring Data
-  * Hibernate OGM
-  * Eclipse TopLink
- ==== An Excessive Fascination with the Apache Brand ====
- While we expect the Apache brand may help attract more contributors, our interests is in
establishing a powerful and widely used standard for NoSQL driver. At a later stage, if successful,
standardizing it within a JSR also may be an option. We believe this process starts with growing
a strong and self-managed community that can someday lead the charge in any future standardization
efforts. Furthermore, we have been enthusiastic users of Apache and feel honored at getting
the opportunity to join and learn.
- ==== Documentation ====
-  * Let's talk about standard to NoSQL database in Java:
-  * More details about API:
-  * Presentation about Diana:
- Links to some other existing solutions:
-  * Spring Data
-  * Hibernate ogm:
-  * Eclipselink:
-  * Jdbc-json
-  * Simba
-  * Tinkerpop
- ==== External Dependencies ====
- The following external dependencies have been identified:
- The core functionality will be dependent on/use
-  * Apache Maven - Java based build tool - Apache License 2.0, (non-runtime)
-  * Shrinkwrap - Java deployment packaging - Apache License 2.0 (non-runtime)
-  * Apache Bval - Apache License 2.0 (non-runtime)
-  * Apache openwebbeans - Apache License 2.0 (non-runtime)
-  * Apache Commons - Apache License 2.0 (non-runtime)
-  * Apache Collections -  Apache License 2.0 (non-runtime)
-  * Apache IO -  Apache License 2.0 (non-runtime)
-  * Apache Tinkerpop -  Apache License 2.0 (non-runtime)
- ==== Cryptography ====
- The framework will not bring along additional cryptographic algorithms.
- ==== Required Resources ====
- The project's build currently is based on Maven, it might be moved to gradle.
- Continuous build and integration is important. Depending on the integration and third party
solutions/versions supported this may require several external solutions to be loaded. All
of them must be available as OSS projects or freely accessible.
- Continuous quality control with SonarSource would be important as well to guarantee very
high quality. This is important to have a good adoption rate as well.
- ==== Core Developers ====
- The core team will be a set of well known experts from the Java SE and EE area (in random
-  * '''Anatole Tresch''' is employed at Credit Suisse. He leads JSR 354 (Money & Currency)
and also was planned as cospec lead for Java EE configuration JSR together with Oracle. He
also is a member of the CDI 2.0 expert group and is actively driving the configuration topic.
-  * '''Werner Keil''' aka "Java Godfather" is individual JCP EC member and member of the
 Developer Week Advisory Board. He's  contributing to several JSR's in the ME, SE and EE space.
He is a Spec Lead in the Units of Measurement JSR. Werner is already a committer/PMC member
of ASF projects and member of the Java EE Guardians.
-  * '''Otávio Gonçalves de Santana''' Otávio Santana (@otaviojava) is a developer and
enthusiast of open source. He is an evangelist and practitioner of agile philosophy and polyglot
development in Brazil. Otávio is a JUG leader of JavaBahia and SouJava, and a strong supporter
of Java communities in Brazil, where he also leads the BrasilJUGs initiative to incorporate
Brazilian JUGs into joint activities. In the open source world, Otávio is a developer in
OpenJDK and a creator of Easy-Cassandra. He has also helped in JBoss Weld, Hibernate, Apache
Commons, and other open source projects. Otávio is a very active speaker in Brazil, where
he has participated in the largest Java events in the country. As an international speaker,
Otávio has presented in JavaOne and the Cassandra tour events. Otávio is also a writer,
and has many articles and even a book on JVM Internals. Otávio Santana actually means “make
the future Java”, working in several Java Specification Request (JSR), as Java Expert team.
Otávio was recently nominated and won the JCP's Outstanding Adopt-a-JSR Participant of the
Year award, Java Champion, Duke Choice Award for his very active role several JSRs, OpenJDK
and community.
-  * '''Luca Garulli''' is the original author of the OrientDB product. He started working
with storage algorithms in 1998 and created the first production-ready version of multi-model
OrientDB in early 2010 after 17 years of experience creating DBMSs. Luca is a member of the
Sun Microsystems JDO 1.0 and 2.0 Expert Groups that wrote the JDO standard
-  * '''Oliver B. Fischer''' is Senior Software Engineer at E-Post Development GmbH in Berlin.
He is an active Apache committer and contributes to a range of Open Source projects. He also
publishes widely in peer-reviewed journals and magazines with a strong focus on Java. He is
passionate about innovative systems and ideas, especially in connection with Java but with
increasing emphasis on DevOps-related topics. Oliver leads the Java Usergroup Berlin-Brandenburg
and helps organise several conferences.
-  * '''Gerald Sangudi''' leads the Query Engineering team at Couchbase, which is creating
N1QL, the upcoming query language and engine for the Couchbase distributed document database.
Gerald has been building enterprise software for over 20 years. He started out building data
mining and visualization software at Silicon Graphics, and went on to build more software
at VMware, Healtheon/WebMD, Yahoo!, Loopt, and 23andMe. He studied Computer Science and Engineering
at MIT, and holds several patents.
-  * '''Prasad Varakur Prasad Varakur''' is principle product manager at  Couchbase, and comes
with over 17years of database internals DNA. Prior to Couchbase, he was Director of Strategy
at Huawei R&D leading cloud, containers, and big-data technologies. He was also Sr. Architect
for Huawei’s internal NewSQL cluster database, built to deliver high performance SQL queries
on peta bytes of data. He was part of core team at Sybase/SAP building ASE database Cluster
server for 10 years, and has built storage servers at EMC and Novell.  Prasad holds Master’s
degree in computer science from Indian Institute of Technology(IIT – Kanpur), and his thesis
contributed foundational research works of Parametric Query Optimization techniques. He holds
several patents in distributed systems and database internals.
-  * '''Christoph Engelbert''' is a passionated Java geek with a deep commitment for Open
Source software. He is mostly interested in Performance Optimizations and understanding the
internals of the JVM and the Garbage Collector. He loves to bring software to it's limits
by looking into profilers and finding problems inside of the codebase. In addition he is highly
interested in new ideas, technologies and new ways of solving problems. He has a deep understanding
of IP based technologies like Protocol Stacks, TCP, UDP and asynchronous service implementations
and fast serialization solutions. Normally he doesn't like to reinvent the wheel but if there
is a reason and a chance to make it faster or easier to use he still does it.
-  * '''Johan Larson''': Johan studied databases at the University of Wisconsin under Drs.
David Dewitt and Goetz Graefe, ultimately writing his doctoral dissertation on a technique
for paginating SQL queries. After finishing studies in 2001, he worked in a number of positions,
starting in database engineering for a couple of startups in the Bay area. He also worked
on a search engine at Open Text and on ad servers at Google. Since 2015, he is at Couchbase
working on the N1QL query engine and he is the core contributor to the  JDBC-JSON open source
project  (
-  * '''Daniel Cunha''' is passionate about software development and a firm believer in Open
Source community membership. His enthusiasm for Open Source and Java motivated him to become
a committer to projects like DeltaSpike, Yougi, Lightweight EE, and JBoss Aesh. He contributes
to Tomitribe, JBoss, Spring, VRaptor, and Caelum Stella projects. Beyond the code, you can
find Daniel at Latin America conferences, JUGs and workshops speaking about Apache TomEE,
RESTful Web Services and other Java related topics. Prior to his Java and Open Source adventures,
Daniel was an OSUM Leader at the Sun Microsystems University program. Now he’s a core part
of team at Tomitribe.
- It is expected that more people will join the incubator once it's running:
- We are already in contact with several companies from Europe and US, that are heavily interested
in contributing to this initiative.
- LJC (London Java Community), SouJava,JUG Chennai will do Hackdays and provide feedback.
- JUG Berlin Brandenburg is one of the bigger JUGs in Germany and would probably also actively
contribute to this project.
- JUG Zurich organizes regular (monthly) Hackergarten and will as well contribute to this

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message