Skip to content

Reddit post 2 draft

Romans Malinovskis edited this page Aug 2, 2016 · 2 revisions

A while ago I made a Reddit post trying to understand developer frustration with the state of ORM and Data frameworks. Based on your feedback and 6 months of work, my Open-Source project is finally complete. WAIT, before post "not another framework", read through some points why I have invested all my time and why I'm sharing it with you.

Agile Data is not an MVC framework. It is designed to solve a very realistic developer pain. It will give you a way to better express your business requirements in object-oriented PHP. It can be used alongside any MVC/MVP framework of your choice - Laravel, CakePHP, Symfony substituting native ORM/DataBuilder classes.

1. Scalability over Performance

Many confuse "performance" with "scalability". Using lightweight solutions can help your application respond faster on your low-tier droplet. Scalability can be a bit slower with the basic requests, but it performs just as fast when you have 150+ SQL tables and millions of records to operate with.

Agile Data focuses on scalability first.

2. Short over Long

I generally dislike that enterprise-grade frameworks such as Doctrine ask you to write a lot of code to achieve even simplest things. I think that it is possible to address complex business requirements with a simple-to-read code. Things could be more .. eloquent.

Agile Data uses a simple syntax to solve complex tasks.

3. Embrace NoSQL

Your current alternatives today are either to use QueryBuilder with SQL vendor or use basic ORM (or active record) with NoSQL. All the PHP developers I have talked about said that they are unlikely to change all of it database but they can see how storing some models in NoSQL can benefit them (such as Activity Log).

They also said that they are not willing to sacrifice SQL features and expressiveness just for this abstraction and they still want to use 5 sub-selects, 10 joins, custom IF-logic and conditions in their queries.

Agile Data abstracts Database access without sacrificing SQL features, allowing you to work cross-vendor.

4. Designed as Open-Source from day 1

While refactoring, I and few contributors followed best practices used in large open-source projects. Create and approve features through PRs. Unit-test first. Low dependencies. 95% code coverage goal. Documentation in "RST". Follow style and coding standards.

My project is mainly inspired by a previous generation code which I wrote in 2011 which have been part of my other framework (Agile Toolkit), (downloaded over 30K times and used in many big SaaS projects).

Agile Data has been made with all the best practices I can think of.


I'm excited to announce that Version 1.0.2 has just been released fixing some of the contingency issues, and you are all welcome to download Agile Data for a test-run. Project can be found at:

(git.io/ad)[http://git.io/ad]

I am now looking to start the initial community, come help us make Agile Data even greater. Here is how you can help:

  • Trying Agile Data in your application/database and giving feedback or reporting problems
  • Writing a short integration guide
  • Report rough spots in documentation

If you are not a developer you can still help by sharing my announcement with your developer friends.