This paper describes the major issues in the design and implementation
of orthogonal persistence in IK. A single and uniform programming par
adigm is used to manipulate objects in a persistent and distributed en
vironment. Object references can be freely passed during remote invoca
tions or stored persistently. IK supports orthogonal persistence with
type inheritance. Objects are stored persistently when reachable from
an Eternal Root, regardless of their type. For programmers, objects ar
e created and manipulated uniformly, independently of the time they pe
rsist. Persistent objects are dynamically grouped at run-time into clu
sters to encapsulate fine-grain language level objects into coarser-gr
ain entities. We present a novel approach to integrate object clusteri
ng, naming and garbage collection in persistent systems, and present e
xperimental results.