Skip to content

Karyon 2.0

Nitesh Kant edited this page Jan 15, 2014 · 5 revisions

Introduction

When we open-sourced karyon we did not add the "runtime aspects" of karyon that we have inside Netflix. karyon 2.0 intends to fill this gap by open-sourcing these runtime aspects and also augment karyon as a multi-protocol, light-weight container with a flexible I/O model.

Features

(All the features listed here are one-liners for context, there will be wiki pages explaining them in the days to come.)

Karyon 2.0 will contain the following changes:

Improvements

  • Karyon's bootstrapping is not intuitive as it requires the bootstrap class to be specified via a property. Karyon 2.0 will have a more appropriate programmatic style of specifying the bootstrap.
  • Karyon's healthcheck handler being specified as properties creates unnecessary hoops to bind the implementations for guice. This will be more explicit in karyon 2.0
  • Karyon's extension publishing will be modularized with an artifact per extension.

Additions

  • Support for multiple transport & application level protocols.
  • Support for both blocking & non-blocking I/O models.
  • Support for an async programming model irrespective of the I/O model (blocking/non-blocking).
  • Support for jersey & servlets over both kind of I/O models. In the first phase we will not be supporting async servlets or jersey.
  • Open-source the internal netflix functionality of seamlessly propagating arbitrary contexts in your call graph.
  • Metrics around system health & request processing.

Status

Karyon 2.0 is currently under heavy development and the current code can be found in the karyon 2.0 branch We do have an artifact in maven with version 2.0.02 but it is not production quality and will be undergoing a lot of API change in the coming days, so it is not a good idea to use it as of now.