DataKernel is a full-stack application framework for Java. It contains components for building applications of different scales, from single-node HTTP-server to large distributed systems. DataKernel was inspired by Node.js, so it's asynchronous, event-driven, lightweight and very easy to use. Moreover, it is completely free of legacy stuff, such as XML, Java EE, etc.
Due to the usage of modern asynchronous I/O, DataKernel is extremely fast, which is proven by benchmarks.
The essential components of DataKernel form the basis of our ad-serving infrastructure at AdKernel, running in production environments and processing billions of requests. Specifically, DataKernel is the foundation for systems that provide real-time analytics for ad publishers and advertisers, user data processing tools that we use for ad targeting, and also web crawlers that perform content indexing on a large scale.
- ByteBuf - Memory-efficient, recyclable byte buffers.
- Eventloop - Efficient non-blocking network and file I/O, for building Node.js-like client/server applications with high performance requirements.
- HTTP - High-performance asynchronous HTTP client and server. Benchmark
- Async Streams - Composable asynchronous/reactive streams with powerful data processing capabilities. Benchmark
- Serializer - Extremely fast and space-efficient serializers, crafted using bytecode engineering. Benchmark
- Codegen - Expression-based fluent API on top of ObjectWeb ASM for runtime generation of POJOs, mappers and reducers, etc.
- RPC - High-performance and fault-tolerant remote procedure call module for building distributed applications.
- Aggregation - Unique database with the possibility to define custom aggregate functions.
- OLAP Cube - Specialized OLAP database for multidimensional data analytics.
- RemoteFS - Basis for building efficient, scalable remote file servers.