infoverload commented on a change in pull request #18812: URL: https://github.com/apache/flink/pull/18812#discussion_r809820042
########## File path: docs/content/docs/dev/configuration/advanced.md ########## @@ -24,33 +24,28 @@ under the License. # Advanced Configuration Topics -## Dependencies: Flink Core and User Application - -There are two broad categories of dependencies and libraries in Flink, which are explained below. - -### Flink Core Dependencies +## Anatomy of the Flink distribution Flink itself consists of a set of classes and dependencies that form the core of Flink's runtime and must be present when a Flink application is started. The classes and dependencies needed to run the system handle areas such as coordination, networking, checkpointing, failover, APIs, operators (such as windowing), resource management, etc. -These core classes and dependencies are packaged in the `flink-dist` jar, are part of Flink's `lib` -folder, and part of the basic Flink container images. You can think of these dependencies as similar -to Java's core library, which contains classes like `String` and `List`. +These core classes and dependencies are packaged in the `flink-dist.jar` available in the `/lib` +folder in the downloaded distribution, and part of the basic Flink container images. +You can think of these dependencies as similar to Java's core library, which contains classes like `String` and `List`. In order to keep the core dependencies as small as possible and avoid dependency clashes, the Flink Core Dependencies do not contain any connectors or libraries (i.e. CEP, SQL, ML) in order to avoid having an excessive default number of classes and dependencies in the classpath. -### User Application Dependencies +The `/lib` directory of the Flink distribution additionally contains various JARs including commonly used modules, +such as all the required [modules to execute Table jobs](#anatomy-of-table-dependencies) and a set of connector and formats. +These are loaded by default and can be removed from the classpath just removing them from the `/lib` folder. -These dependencies include all connectors, formats, or libraries that a specific user application -needs and explicitly do not include the Flink DataStream and Table APIs and runtime dependencies -since those are already part of the Flink core dependencies. +Flink also ships additional optional dependencies under `/opt` which can be enabled by moving the JARs in the `/lib` folder. Review comment: ```suggestion Flink also ships additional optional dependencies under the `/opt` folder, which can be enabled by moving the JARs in the `/lib` folder. ``` -- 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: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org