The approach as I understand is simple and valuable until you face concurrency. 
Nothing in SimplePersistence prevents your data from becoming corrupt in a 
concurrent situation. I agree that when you start a project you almost never 
face concurrency because the odds are way too low to have two things at the 
same time happening. This is because computers are really fast today and the 
amount of activity on a service is largely overestimated.

But there is still a huge gap between SimplePersistence and those overkill 
persistence solutions. For exactly that reason I've done Soil 
(https://github.com/ApptiveGrid/Soil) to fill that gap. It is one project with 
no dependency and setting it up is a no-brainer. It is way bigger than 
SimplePersistence but it deals with concurrency and adds query capabilties for 
your objects. But you have to use transactions to do this. 

I started ApptiveGrid just by having the data persisted through saving the 
image. Next was to STON out the model. Then versioned STON files to add 
fallback. Then there was Soil (well, first voyage and then omnibase and then 
Soil) which is the next level to iterate. 

So ApptiveGrid is not the next google but it also wouldn't work with 
SimplePersistence. So good that we have enough tools to improve our projects on.

Norbert


> Am 15.02.2024 um 06:43 schrieb s...@clipperadams.com:
> 
> I’m happy to answer any questions about Simple Persistence. It is a nice 
> framework around (potentially any) serializer. It’s meant to be pluggable but 
> currently uses Fuel out of the box. You just tell it what classes to persist 
> and then create two methods per class to handle materialization/serialization.
> 
> For the record, Ramon Leon created it in a blog post. I just ported it to 
> Pharo and have been maintaining it.
> 
> The stated reason he created it is that most solutions are complete overkill 
> for 99% of projects that will never “become the next google”. It’s pretty 
> basic, but at least two steps more sophisticated than simply saving the image 
> because it keeps old versions and is easily reloadable into another image.
> 
> That said, I’ve been using it almost exclusively for my personal projects and 
> have yet to grow out of it.
> 

Reply via email to