An infinitely scalable database written in python.
We care about allowing anyone with basic technology skills to setup a scalable database.
Cost per unit of storage. Lower is better.
We can be the best scalable relational database application.
- Configuration is bad. Self optimizing applications are good.
- Restarts are bad. Online upgrades are good. Adding resources shouldn't mean interruptions.
- Safety is good. Having easy and fast backups makes us feel safe.
- Redundancy is good. Let's keep multiple copies of data.
- Metrics and statuses are good. It's even better if they're presented in a pretty way.
- Testing is good. I like to sleep at night. Let's use unit tests and functional tests whenever we can.
- Easy setup is good. We don't want to spend time on dependencies or compiling.
- Documentation is good. Accessible documentation is better. Succinct documentation is best. Brevity is the soul of wit.
- Interopability is good. Defining our own protocols is bad. Let's be drop in replacements for everyone else.
- Open source is good. Let's get everyone in on this party. Let's make sure we take care of our contributors.
- Be nice to people. Let's treat each other with respect.
- Things that make the world better are good. Let's help people who are doing that.
- People who use our work are good. Let's make sure they're taken care of.
- Python is great. Let's do everything in python.
We want to enable world class breakthroughs by providing the best storage application possible.
Version 0.0 will be pure vaporware. The output is documentation, branding and a plan for releases 0.1 to 0.4.
The first major release will be a drop in replacement for MySQL, memcached, and potentially redis for both master/slave configurations with an emphasis on compatability with Ruby on Rails/Django.
- Create a hierarchy of necessary responsibilities within the project.
- Decide on which open source license to work with.
- Create a document describing code structure (which directories/files go where?) and documentation structure (how are we going to store and organize documents?).
- Create a structure for deciding what goes into each release.
- Create a document that describes how others can contribute.
- Create functional requirements for release 0.1.
- Create functional requirements for release 0.2.
- Create functional requirements for release 0.3.
- Create functional requirements for release 0.4.
- Create a logo.
- Add the created documentation and plan to the website.