Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-12757

Move server related common and public classes into separate module(s).

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      There are two sets of classes that we want to pull out here for server common/api classes.

      1. All the common classes used by server modules.
      2. All the public server side classes exposed to users. Some of these classes are storage-api, security, quotas etc.

      Couple of approaches that we can consider here:

      1. Both sets of classes will be added in server-common module but common classes will have a package prefix as org.apache.kafka.server.common. But public classes will continue to have the existing package names. We will generate javadocs for these public classes.
      Pros

      • Users and server modules will be depdent on a single module for both common and public apis.
      • Both common classes and api classes can be dependent on each other.

      Cons

      • Not a clean separation between common classes and public classes.

      2. Common classes used by server modules will be added in server-common module. We will create another module called server-api for server side public classes.

      Pros

      • It gives a neat separation between common and public classes.
      • Maintaining the growth of these modules will be easy.

      Cons

      • We can not have common and api classes to be dependent on each other which will cause circular dependency.

       

      Please feel free to modify/add other approaches in modularizing these classes. 

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            satish.duggana Satish Duggana
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: