Metasfresh ERP Evaluation
The purpose of this page is to discuss Metasfresh ERP. Here are my thoughts:
- Wikipedia description
- Fork of ADempiere released in 2015
- Primary points of interest per Chuck Boecking:
- GPL V3 for Metasfresh vs GPL V2 for iDempiere
- Spring framework for persistence
- Popular UI components (HTML5, PostCSS, JavaScript, React, Redux)
- Kubernetes deployment
- Testing framework focus
- Chuck's thoughts:
- I started an evaluation in early 2017.
- Reasons for interest:
- Has all the right buzz works. One criteria in looking for open source projects is to see if it uses popular frameworks. Metasfresh has them.
- Kubernetes is a very interesting framework for building microservice applications.
- Shortly after starting my evaluation, I stopped. Here are the reasons:
- I do not speak German and neither does the majority of the world. Almost all mailing list entries are in German (at least the last two year's worth).
- I see little value in moving to the Spring persistence framework. While it is not a good idea (in general) to create your own persistence framework, iDempiere's has been baking for the last 19 years. It was created specifically for ERP, it is fully featured and it continues to perform admirably. The combination of the Application Dictionary and the programming model supports my business, as is, exceedingly well.
- zk, while somewhat obscure, has been proven and has evolved over the last 10 years. If you are a traditional UI designer, you probably turn your nose up a little at zk. I would as well. If you are a Java developer, zk makes good sense. The majority of people who work on iDempiere are Java developers.
- Microservices application development has great promise. There are many successes. None of them are ERP. I spent 1.5 years of my life investigating if microservices are a good fit for ERP. Kubernetes is probably the single greatest innovation to date in supporting microservices deployment. Since Metasfresh uses Kubernetes, I believed it was worth a look. At the same time I was performing this investigation, I came across SAP ByDesign. It is a ground up creation of ERP using microservices (as best as I can tell). As a result of it being a microservices application, you have zero access to the database. I got to witness a mid-sized company try to deploy SAP ByDesign. Since there is no database access, all interaction (reporting, integration, etc...) was forced through web services. Database access is cheap in many regards (tooling, coding, speed, flexibility, transaction management, etc...). Web services are expensive in many regards (tooling, coding, speed, flexibility, transaction management, etc..). The mid-sized company spent in excess of $2.2M USD and counting attempting to go live with SAP ByDesign. Seemingly simple tasks took months. In short, it is important to choose the right tool for the right task. Microservices has not evolved enough yet to support ERP. Given this observation, Metasfresh' use of kubernetes is no longer a benefit to me.
- Testing... Testing is quite possibly iDempiere's greatest weakness. Since Metasfresh touts its testing ability, it remains an attractive point; however, since testing is the only interesting point remaining for me to continue with the Metasfresh evaluation, I was not compelled to review Metasfresh testing abilities. This point is compounded by the fact that I created a testing framework to support the Replenish 2.0 plugin. This testing framework is capable of creating many raw good products, vendors for each, adding the products to a multi-level BOM, sourcing the BOM components from both PO/MR and Inventory Move, across multiple scenarios, running multiple processes, ... all while asserting if the each to the scenarios passed. This framework was recently extended by Fr Jeremy Krieg <fr.jkrieg@greekwelfaresa.org.au>. There is little more I need out of testing that I cannot do in iDempiere.
- I did not get to witness Metasfresh's ability to support plugins. I can attest to how well I can build an ecosystem of plugins around iDempiere.
- At the end of the day, the dive into Metasfresh reinforced the basic reasons why I use iDempiere.
I hope this helps!