Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 2 Next »

Fabric3 makes implementing highly-available clustered singletons trivial by using the @Scope("DOMAIN") annotation:

@Scope("DOMAIN")
public class TheComponent ... {
 
   public void onEvent(Event event) {
      //...
   }
}

As explained in Lifecycle and Scopes, a clustered singleton instance is created on the zone leader. If the leader fails or otherwise becomes inactive, a new instance is created on the newly elected leader.

There are a number of common use cases for clustered singletons:

  • Timers that can only have a single emitter but must be highly-available (see Timer Components
  • Consumers that listen on a remote channel bound to a transport such as JMS which can only have one instance active at a time