[Seaside] Prevayler

Frank Sergeant frank@canyon-medical.com
Tue, 19 Mar 2002 11:51:27 -0600

Avi Bryant <avi@beta4.com> wrote:

> Ok, I have a specific design question about this.  One thing any
> persistence engine is almost certainly going to need is a mechanism for
> replacing stubs with real objects as they're needed, rather than loading
> everything into memory at once.

That's what I'm doing currently, using Dolphin for the (fat) clients and
Python/Metakit for the server.  However, in my particular application,
all the data *could* fit in RAM, so this in a candidate for converting
to a "prevalence" system (and Seaside).

> There seem to be two obvious ways of
> handling this - either the stub becomeForwards itself into the object, or
> the stub sticks around and just forwards all method sends to the real
> object.

I am currently doing the former.  I feel like this made my work harder
and tended to tangle my mind too much.  If I had it to do over, between
the two I would now pick the proxy that forwards instead of the proxy
that becomes.

I've loved the reliability of Python/Metakit.  It "just works". 
However, there has been a certain strain on me in having to shift
between Smalltalk on one hand and and Python on the other, and in Python
I miss my wonderful Smalltalk debugger and inspectors and browsers.  The
"dramatic simplification" of 

 (1) server only (let the web browsers worry about the client side)
 (2) staying totally in Smalltalk
 (3) keeping the business objects entirely in RAM

is calling to me!

-- Frank