Of course, serialization isn't always necessary but in this case the idea was to _enforce_ serialization.

The cost of serialization compared to the actual page construction time (often with database accesses and such) seems to often be very small. Scalability is the same as for using explicit LDMs in your code. Once you have set it up you can never "forget" to detach stuff and end up with an overstuffed session. You don't have to serialize to disk either you can keep the data in memory or in your Terracotta cluster or whatever.

I think it has clear advantages to explicit model proxies. Models proxies are still necessary in some cases, but usually you can just put an entity in your component and it will work as if you had used LDMs.

I'm not saying this is a golden... But it's a really nice alternative in many cases.

// Daniel
jalbum.net


probably because serialization is not guaranteed. you can use a http
session store on a single node cluster and never have anything
serialized.

-igor


A third option, which from my POV is perhaps the most elegant, is to roll your own page store that serializes the pages instantly after the request. The serialization have special hooks to replace entites or whatever that you would prefer to have as LDM with a placeholder that just stores the type and id when serialized. When/if the page is later deserialized you get the
entity fresh from your object repository (cache).

Why is this elegant? You get the programming model of push with the benefits of pull without writing any code for model proxies. I have communicated this idea before but nobody but me seems to prefer it, I'm actually surprised :-)

// Daniel
jalbum.net


Reply via email to