forked from apache/pinot
-
Notifications
You must be signed in to change notification settings - Fork 0
Coding guidelines
Jean-François Im edited this page Jun 3, 2015
·
2 revisions
Code formatting
- Use standard LinkedIn code style in eclipse/idea to format the code. TODO: commit the checkstyle plugin into code.
Dependencies between various modules
The dependencies between the modules are set up in pom.xml automatically. Please don't add dependency between modules without discussing with the team.
- pinot-util and pinot-common form the leaf of the dependency tree. They should not depend on any other pinot module. Other modules (apart from pinot-api) can depend on these modules.
- pinot-api is also another leaf but it is supposed to be used by clients and must rarely change. No pinot module should depend on this modules
- pinot-controller, pinot-server, pinot-broker are component level modules and there should be no cross dependency between them
- pinot-core is where most of the index related code exists. pinot-server will depend on pinot-core indirectly. There will be some interfaces in common that will be implemented in pinot-core and initialized in pinot-server at runtime
- pinot-transport is something that will be shared between pinot-broker and pinot-server.
License header
We need to have Apache License in each and every time. Please run mvn license:format command to verify that all new files added by you have the license header.
Setup: IntelliJ
Nothing to do, it's a standard Maven project.
Setup: Eclipse
Install the M2Eclipse plugin: http://eclipse.org/m2e/ or do mvn eclipse:eclipse. You'll need to change the M2_REPOSITORY variable in Eclipse.
- Multitenancy
- Architecture
- Query Execution
- [Pinot Core Concepts and Terminology] (Pinot-Core-Concepts-and-Terminology)
- [Low level kafka Consumers] (Low-level-kafka-consumers)
- [Expressions & UDF Support] (Expressions-&-UDF-support)