AttributeBeanStore.attach() currently eagerly loads all the beans from the backing store. This is suboptimal for two reasons:
1) Performance - a request may not touch e.g. certain @SessionScoped instances at all. Still, all the @SessionScoped beans need to be read from session on attach()
2) Replication - most application servers implement set-and-non-primitive-get strategy as a replication trigger. That means that each session attribute that is explicitly set or read (assuming it is non-primitive) is replicated once the request finishes. Since the AttributeBeanStore eagerly reads all the bean instances on attach(), it effectively cause the entire session to be replicated always.
We should investigate if we can implement lazy approach to attribute loading - only read the backing store if the local bean store does not contain the entry.