Data is top of mind in VMware engineering these days. You might have seen my recent post, and today we’re pleased to open-source a new database named Affinity under the Apache 2 license. Affinity is a fully transactional cloud data store with an extremely flexible data model. It will be available as open-source much like VMware’s existing work with Spring and Cloud Foundry communities.
Affinity is emerging from multiple years of R&D and brings a lot to the table for developers. It allows for a more expressive and easy way to deal with complex, heterogeneous data and will offer features that enable the development of unique applications.
Web developers will be able to use Affinity to:
- Store a variety of social graph data and analyze the social graphs (e.g. discovering cliques, social bridges, facilitators)
- Make a web application that stores and retrieves JSON based objects, while enabling that application to do complex SQL-based queries
- Continuously process incoming streaming data, much like a small event processing engine
The authors have built in some pretty cool features to support developers needing flexibility in their data models. Affinity allows simultaneous storing and manipulation of table data, graphs and documents. Users will immediately appreciate Affinity’s ease of use and quick prototyping, which reduces or eliminates the need for an ORM. The coexistence of multiple schema and data sharing between applications is a plus. And its deployment portability (from small device to the cloud) is extremely attractive…it has a small kernel available on OSX, Linux, Windows and ARM devices. Developers will also appreciate that Affinity uses a new more powerful query language – PathSQL, as well as a number of features not usually encountered in other databases, e.g. support for dimensionality control.
Development of Affinity started at Pi Corporation. The Affinity engine has been developed by Dr. Mark Venguerov with a small team. Affinity has reached a high level of maturity and we feel it is ready for release to the open source community.
In the future, Affinity hopes to cover the spectrum from small devices to cloud storage, from ACID to eventual consistency, and have enhancements to PathSQL. We look forward to participation by the open source community to help achieve that!
If you want to get started with Affinity, please visit affinitydb.org. There you’ll be able to take a test drive and we’d love to hear your feedback.