As the database market continues to expand, many start-ups in the space are focusing on honing their key points of differentiation to carve out a customer market. FoundationDB -- with founders from the Adobe-acquired Visual Sciences -- believes that their transactional, API-at-the-core database software will continue to increase in importance as customers seek a NoSQL solution with the reliability of SQL. Cofounder and CEO of FoundationDB David Rosenthal spoke with ProgrammableWeb about how customers are using FoundationDB and why it is worth having an "extremely opinionated API" at its center.
Rosenthal has seen the rising interest and capabilities of database software for the past three years. “Databases had been an opaque part of the software -- there had not been much change in the industry,” said Rosenthal. “We got pretty excited by NoSQL in 2009. Suddenly, there was a ton of experimentation with data models, graph databases, document-oriented databases…. It was a cool time, and we were looking carefully at those products. No one had tackled the big problem of building a database that had been able to do transaction processing. There was no ACID (Atomicity, Consistency, Isolation, Durability).
“So we asked, Was it possible to build a distributed design with all the benefits of NoSQL but with the transactional integrity of a relationship database? Consequently, we built FoundationDB over three years and launched last fall.”
Transactional database features in NoSQL
For FoundationDB, this has reflected in a customer base that is already savvy around the potential benefits of distributed databases and that is looking for a solution that can help bridge the data warehouse needs with transactional features. Customers want to be able to mine their data while also being confident that data records have been updated in real time, one of the perceived shortfalls of NoSQL databases.
“Our customers are not new to NoSQL,” Rosenthal says. “Many of the people who are looking at FoundationDB have tried and lived with NoSQL as part of their stack. The curse is that you have to adopt a lot of products — not just MongoDB but also Cassandra and Redis. Then an engineer in the business comes across other interesting databases — they are not being fulfilled at present [by the DBaaS market], but, because of our transactional ability, we are able to support multiple data models.
“So our customers are putting all their data into FoundationDB. Many have a MySQL database; some have NoSQL databases. The powerful thing for them is that all these stable pieces can live inside FoundationDB. From there, they can use APIs to carry out transactions. Rather than bouncing a number of things around, when they commit, all their data is in sync.”
Bridging SQL and NoSQL
Gartner Research sees this “bifurcation” between SQL and NoSQL “diminishing” in the future.
This presents an opportunity for FoundationDB to emerge as a market leader, as enterprises look for solutions that bridge SQL and NoSQL capabilities. To this end, FoundationDB expects to introduce a SQL abstraction layer on top of their API transactional engine this year. The company bought SQL start-up Akiban late last year specifically for that purpose.
An "extremely opinionated" API
To do this well, Rosenthal argues that FoundationDB has limited the core FoundationDB API in the database to an ordered key-value store, with other functionalities -- including the forthcoming SQL capability -- being enabled by abstraction layers. This is at the center of what makes it possible for FoundationDB to offer highly performant, reliable data storage that maintains a singular view of all data.
“We have an ‘extremely opinionated API,' as someone told us!” Rosenthal said. “We have a very clear idea about what should be part of an API. It doesn’t have support for JSON, for example, or compression, or typed text searches.
"Our philosophy is that we are building a database with a very simple API: It is an ordered key-value store, completely agnostic. In addition, it is a magical piece of API: We guarantee full transactional data. So when you do full reads and writes, we can guarantee that they are consistent with each other and that all writes are recorded, regardless of how many instances of the database are open at one time. Everything else is pushed to layers about our API.
“So at the core is the key-value engine. But, you can do a lot of things with layers. For example, we have built a layer that is able to query and analyze graph queries using a Blueprints implementation layer.
“We love when people say, as an example, We want to build a geo-location recommendation engine. But one of the questions is, Where does the state — persistent data — live? Where does the raw data that drives the engine live? We like to think, What is the persistent data, and how is it stored in FoundationDB? So to do that, you would read our data modeling documentation, and, when you do that mapping, you can have a scalable, fault-tolerant, transactional version of your system.”
FoundationDB offers detailed documentation for developers, including a must-read tutorial on data modeling and API reference guides in languages including Python, Ruby, Nodem and others.
By Mark Boyd. Mark is a freelance writer focusing on how we use technology to connect and interact. He writes regularly about API business models, open data, smart cities, Quantified Self, and e-commerce. He can be contacted via e-mail, on Twitter, or on Google+.