kagarwal06 commented on code in PR #16338:
URL: https://github.com/apache/kafka/pull/16338#discussion_r1641604554


##########
docker/native/README.md:
##########
@@ -0,0 +1,31 @@
+# GraalVM Based Native Apache Kafka Docker Image
+
+## Introduction
+- The Native Apache Kafka Docker Image can launch brokers with sub-second 
startup time and minimal memory footprint by leveraging native Kafka executable.
+- The native Kafka executable is built by compiling Apache Kafka code 
ahead-of-time using the [GraalVM native-image 
tool](https://www.graalvm.org/jdk21/reference-manual/native-image/).
+- This image is experimental and intended for local development and testing 
purposes only; it is not recommended for production use.
+- This is introduced with 
[KIP-974](https://cwiki.apache.org/confluence/display/KAFKA/KIP-974%3A+Docker+Image+for+GraalVM+based+Native+Kafka+Broker).
+
+## Native-Image reachability metadata
+The native-image tool performs static analysis while building a native binary 
to determine the dynamic features(the dynamic language features of the JVM, 
including reflection and resource handling, compute the dynamically-accessed 
program elements such as invoked methods or resource URLs at runtime), but it 
cannot always exhaustively predict all uses. 
+To ensure inclusion of these elements into the native binary, reachability 
metadata should be provided to the native-image builder. 
+These metadata configs are provided in the `native-image-configs` directory.
+
+## How to generate reachability metadata
+GraalVM provide an option to create these configs automatically by running the 
application normally with the [native-image 
agent](https://www.graalvm.org/latest/reference-manual/native-image/metadata/AutomaticMetadataCollection/)
 attached.
+The configs in the `native-image-configs` directory are generated by running 
existing Apache Kafka System Tests(using GraalVM JIT and attaching the 
native-image agent to the process) as they are quite exhaustive.
+
+## Limitations of Native Apache Kafka executable
+- Dynamic Features: For any new dynamic feature added or modified in Apache 
Kafka, the corresponding metadata configurations must be added or updated in 
the `native-image-configs`.

Review Comment:
   Currently there is no formulated steps for adding native configs. Initially 
we will be relying on the system tests results(failures) to catch if any 
configs are required. 
   Note: It is not the responsibility of the RM to check for this.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to