<div dir="ltr">Hi Craig,<div> another easy way to persist is to use an implementation of Prevelayer (<a href="https://prevayler.org/">https://prevayler.org/</a>) or implement it yourself. It is very simple to do it and works great. I did it a couple of times. The idea is:</div><div>1) Reify the actions/commands of your system</div><div>2) Save each action that the system executes (like a database log)</div><div>3) Save the image from time to time and reset the log of 2) (or start a new one just in case)</div><div><br></div><div>Pros: </div><div>1) really fast! all data is in memory</div><div>2) easy to implement</div><div>3) free :-)</div><div><br></div><div>Cons:</div><div>1) Not suitable for high load</div><div>2) One command must be executed at the same time unless they touch different objects</div><div>3) Does not scale with more than one VM / single point of failure unless you implement distributed objects</div><div><br></div><div>To solve 2) you can implement transactional memory, another easy thing to do with Smalltalk. Lukas Renggli did a simple implementation of it: <a href="http://scg.unibe.ch/archive/papers/Reng07bTransMem.pdf">http://scg.unibe.ch/archive/papers/Reng07bTransMem.pdf</a></div><div><br></div><div>Hope it helps!</div><div>Hernan.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 28, 2022 at 3:47 PM craig via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> <br>
> Are you aware of SmartRefStream? It may be all you need.<br>
> <br>
> Cheers,<br>
> <br>
> --<br>
> Juan Vuletich<br>
<br>
Hi Juan,<br>
<br>
I was not aware of SmartRefStream, thank you, I'll play with it and see <br>
if it will suffice.<br>
<br>
Craig<br>
-- <br>
Cuis-dev mailing list<br>
<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><span style="font-size:xx-small;border-collapse:collapse"><div style="font-size:small"><a href="https://10pines.com/" style="font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium" target="_blank"><img width="108" src="https://10pines.github.io/email-signature/10pines-firma@2x.png" style="margin-bottom: 0.5em;"></a><span style="color:rgb(0,0,0);font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium"></span><h1 style="margin:0px;font-size:14px">Hernán Wilkinson</h1><h2 style="margin:0px 0px 1em;font-size:14px;color:rgb(100,100,100)">Software Developer & Coach</h2><p style="margin:0px;color:rgb(100,100,100);font-size:12px">Alem 896, Floor 6, Buenos Aires, Argentina</p><p style="margin:0px;color:rgb(100,100,100);font-size:12px">+54 11 6091 3125</p><p style="margin:0px;color:rgb(100,100,100);font-size:12px">@HernanWilkinson</p></div></span></div></div>