Hi all,

 Kishore, Jason and I met today to discuss the Helix APIs. The
following tasks are identified

- Commands will remain limited to the model entities i.e. Cluster,
Resource, Member and Partition. All other commands will be collapsed
in the ones for model.

- We need to figure a way to have a generic command built so command
writers can simply update the generic command and we can execute that
command.

- Finders introduced in the HelixClient will leverage HelixQuery
except for cases where its a simple find e.g. findById or findAll
where having the user write a query makes little sense and too much
overhead.

- A package for pipeline stage processors needs to be introduced with
interfaces for Rebalancers, Provisioners and Target Providers. Name of
the package needs to be determined.

- A separate package will be added by the name
"org.apache.helix.api.discovery" to carry ExternalView which will be
renamed to ClusterView in the API

- All model entities will be interfaces (or abstract classes) in API,
all implementations will be in CORE and will implement the specific
interfaces/abstract classes. This will allow backward compatibility.

- In a subsequent release we will deprecate the old CORE apis and
point to the appropriate API interfaces so that users can migrate out
of CORE into API.

- Provider API or SPI will have two separate interface sets (a) to
store configuration and (b) for message bus

- Resources will have specializations called PartitionedResource or
ReplicatedResource. The configuration and runtime-state of these
resource types will be different based on the types.

- ReWrite recipes with the new APIs

Other items to work on

- Documentation to explain the helix actors, how they interact and
play with each other.
- Documentation on some of the core principles of the new API

Kishore and Jason please add if I missed something.

I will keep you guys posted as and when I progress through these items.

Thanks,

Sandeep

Reply via email to