Currently the Domino Jam 2025 on underway, both on premise or online, where you can have a say about the missing features for the next Domino releases.
Go participate today, https://www.ibm.com/developerworks/community/groups/community/domino2025.
One of the idea posted by my fellow IBM Champion Daniele Grillo about moving the NSF to a more modern NoSQL approach. I totally agree with him.
Domino/NSF has some very cool features like security. But also a few but very annoying limitations.
MongoDb and CouchDb (or Cloudant) to mention a few very popular NoSQL datastore has overtaken Domino/NSF. The documents are stored as JSON, which makes it very flexible.
Make it modern with OpenNTF Domino API
For HR Assistant we store everything in a Cloudant datastore running on Bluemix. With a OSGi plugin who do the conversion from Java objects to JSON both ways, we store all the data.
A customer had the requirement to save all the data in a NSF, which was not our preferred way. One plus was they were not using the Notes Client to view the data.
So I was looking around who to do it and I found a solution, thanks to Paul Withers (as always ;-))
OpenNTF Domino API has a build in mechanism to convert a field to RichText if the stored data is too big for a normal field.
That was the solution to store all the JSON data direct in 1 notes field, in a document. Almost the way we store the data in a Cloudant datastore. In the end I created a DominoJSONService class with a few CRUD methods
A small code example which shows I can feed the method every object
I store all the data in ‘json’ field, with Jackson Json Mapper to convert the Java objects to JSON.
For this purpose I also store the dataType, which is used in the selection formula of the view.
This opens up lots of possibilities for the ‘old’ NSF.
One thought on “Make the NSF modern again with OpenNTF Domino API”
We have been using NSF as a JSON datastore for almost 8 years now and it works great. Advantages that MongoDB and others do not have is built-in security in the database, record, field and subfield level. You can have encryption in MongoDB and CouchDB, but that is different then how NSF works. The biggest challenge was creating a LotusScript based JSON parser that was fast and flexible. Regardless of how many applications or users, we have a single datastore design for NSF which makes it easier to maintain. Data format is JSON regardless of what application. You have on single datastore form.
Developer should not complain about any size limitation that NSF have. We have not run across anything so far except maybe it is not as fast as MongoDB or CouchDB for raw speed writing which is not what we do. We design for security not raw speed.