ERP5 uses NoSQL where most ERPs used to be based on SQL modeling. ERP5 uses application server level programming in python where most ERPs used to be based on database stored procedures. ERP5 uses state machine representation of workflows where most ERPs used to hardcode decision workflows.
ERP5 is still the only ERP based on a NoSQL approach. What has often been considered as an “exotic” choice by industry experts is now acknowledged to be the most scalable choice for web applications. Facebook, Google, Mixi, etc. all use a NoSQL approach to achieve highest scability. This is also how ERP5 was designed 10 years ago.
All data entered by the user is in ERP5 “stored as such” then transformed and indexed into any kind of index: SQL relational, RDF, full text, LDAP, etc. The underlying idea is to use the most efficient index for a given reporting or data mining purpose. It is also possible to combine multiple index engines. Some people call this approach the “search engine based” approach for enterprise applications.
ERP5 NoSQL and search-engine based architecture prevent bugs which happen at the input stage to generate inconsistent data without any possibility to later recover this inconsistency. This is a direct application of the defensive programming guidelines of ERP5: “write code so that it still works even if something does not work”. If a bug happens during the transformation phase before indexing, it is always possible to reindex data since user input was stored as such.
It is suprising that ERP5 approach is still not widely copied. The only similar case we know is an enterprise application developped by J-P. Figer for “Groupe La Poste” (France) following agile techniques and a search engine based approach which achieved 4 (XXX) times higher productivity that usual approaches.