We announced the first release of unify-jdocs in August 2020. Since then, it has undergone multiple feature enhancements and has been used extensively within American Express as part of the project it was developed for. We have had tremendous success with it and have been able to reduce the size of our codebase substantially, make it much easier for developers and improve maintainability and agility significantly. Unify-jdocs has been invoked billons of times in production and has demonstrated great reliability. The original post can be found here: https://news.ycombinator.com/item?id=24332382.
Reason for posting again – last time while submitting on Show HN, I listed the URL in the URL field and so this text of mine was not visible! And so, I try to continue to promote unify-jdocs.
This is a one-of-a-kind library in my opinion. Two features stand out – read / write any JSON path in a single line of code – and define a document structure and validate a JSON document against it – along with a host of other features. It makes life so much simpler for any Java project that deals with JSON documents.
For projects that deal with more than a few simple JSON documents, need to do transformations and change structure during project lifetime, unify-jdocs absolutely shines. It provides a much simpler way of validating documents as compared to JSON schema.
One counter argument which I have heard come up again and again against using unify-jdocs is around static / dynamic type safety. When we use POJOs, the read / write operations on the document are statically compiled into the app JAR file whereas in the case of unify-jdocs, these operations take place dynamically at run time. In my opinion, the benefits we get from using dynamic typing outweigh the benefits of static typing using POJO / model classes. Looking forward to discussing more. Thanks.