For the current developer's preview release we are supporting Python as the only language for development. But in our future releases we are working on incorporating support for Java and C#.
Brainwave has its own database named Poseidon. The brainwave database is built in such a way that it does not require a schema to be defined for your database. Data can be added straightway. This allows developers to develop applications without defining separate databases for different databases, thereby allowing seamless interaction between applications. We support integration of data in the csv and xls format for the developer's preview release. But for the future releases we are working on providing support for other kinds of databases as well.
The data model of Brainwave is neither relational nor object oriented. It follows a totally new concept which we call as neural.The brainwave database is built in such a way that it does not require a schema to be defined for your database. Data can be added straightway. This allows developers to develop applications without defining separate databases for different databases, thereby allowing seamless interaction between applications.
How can multiple applications run from the same database?
The database does not follow any schema model. As a developer you do not need to define different databases for different applications you are building on the platform. The database acts as a single repository for all data irrespective of the application. Thus depending on the query model and application design data can be interacted upon enabling easy communication between different applications.
What is the need to have a single data repository for multiple applications?
The main objective of Brainwave is to eliminate the need to define different database schemas for different applications. As no schemas are needed the developers can straightaway put in data to the database thus allowing easy and seamless interaction between applications.
Can 2 objects in the database have the same name? How will you differentiate them?
Yes, there can be n number of objects in the database with the same name, but each one of them will have a unique identifier. These identifiers will allow the developer to differentiate between them.
Why or what do you mean when you say a Non Relational Database?
As a non-relational database, Brainwave does not work with the concept of tables, indexes and joins. Instead, the simplest comparison of a "meme" in Brainwave is a "cell" in a table in a relational database. Memes are connected together via links. A record in a relational database would be represented in Brainwave as multi-ple links.
Do you mean that there are no Primary or Foreign keys in your database?
That is correct. There are no Primary or Foreign keys in our database. As our database does not require any schema and does not follow any tabular structure for storing data, it eliminates the need to define any primary or foreign key for relating the data. Although each piece of data can be uniquely identified with an identifier.
What are the various data types you support/ your platform can handle?
The database is dynamically-typed. The primitive types supported are (unlimited length unicode) strings, (unlimited length) integers, booleans and files. Compound types like lists, dictionaries or custom classes are broken down into their primitive components before they are stored.
Currently, the database can be backed up by simply copying the data files at the file-system level. Corrupt indexes are automatically rebuilt during startup. Corrupt data is unrecoverable without a backup.
Brainwave provides a complete framework for developing the user interface. The framework provides several tools which allows the developer to design the front end easily and quickly.