RFC-72 : Forge Object Store

Hello @SunandanGokhroo ,

We have a couple of Apps, so it is a bit hard to squeeze all into one answer, so I try to mainly take the vantage point of our Survey App (Multivote & Enterprise Survey).

The current storage size is quite low, so we can run into problems for storing definition and responses to our surveys - I know DC clients with long definitions that would fail in the Cloud. But we are talking more in the range of a couple of hundred Kbs, maybe some Mbs.

I would expect it to behave like the before mentioned storage systems.

We don’t, but we are about to release a possibility for users to do it. As the lifespan of a survey is driven by the users (ie, they decide how long it should run, and how long they want to store the raw data), it might even be detrimental.

This is really hard to tell, but I don’t see many peaks. For reading: there might be peaks during the hot phase of a vote (which then could maybe cached), afterwards I would anticipate roughly something like 2, 3 times a month max.

Yes, when updating a definition. As the storage is eventually consistent, we just live with this now and it is inherently racing. No atomic updates is really some kind of pain - I would love to have at least the possibility to only update when the previous version has some quality (like version number).

See above - we live with the ray behaviour. With versioned storage, we could more gracefully handle this, but also easily add features like undos.

Right now, I don’t see much. The very tight limits (invocation size and time wise) and the consistency without any way to interact are the major factors. This is also hinders upgrading the data for new versions when a new version rolls out.

Additionally, we would want to have a way to migrate from the other storage solutions to the new more easily - Custom entity would have been nice for us, but as there is no good migration path: you have to be really careful with the tight limits to react on an App update trigger; but then we cannot force older version to be upgraded, see RFC-71: Improving Connect to Forge and Forge Platform Upgrades - #21 by EckhardMaass , so the codebase becomes a mess…

Right now, if it is too much, it won’t work. In another App, to temporarily store something, we split up the file and stored the splits. This is a eally ugly workaround!

Best
Eckhard

1 Like