Skip to content

Development Guide

Jamie Alquiza edited this page May 25, 2021 · 8 revisions

Submitting Changes

Contributors welcome! Check to see if there's an open issue related to a change that you'd like to see or submit.

To best ensure that your proposal will be accepted, it's suggested to open an issue and chat with one of the repository managers. The design ethos that Kafka-Kit intends to maintain:

  • Correctness: Many of the services interact with Kafka cluster state and/or make decisions that directly relate to the durability of the data held.
  • Powerful, but Terse: Operational decision making in distributed systems can be complex; a user may need to consider a variety of situational conditions that ultimately inform what action to take. Kafka-Kit aspires to minimize how often actions need to manifest as input parameters. Examples: topicmappr automatic tolerance selection, automatic mapped broker selection, autothrottle path-optimal rates.
  • General Purpose: The software should never encode business specific logic, but expose functions/primitives that are general purpose enough to ideally cover most use cases.

Testing

Running go test ./... will run unit tests. Complete unit and integration testing is performed in a local Docker environment. Assuming both Go and Docker are installed, make test and make integration-test will run unit and unit+integration tests, respectively, in a Docker compose environment.

Once done, make stop-compose will tear down the environment.

See the Makefile for further operations.

Clone this wiki locally