-
Notifications
You must be signed in to change notification settings - Fork 54
Development Guide
Jamie Alquiza edited this page May 25, 2021
·
8 revisions
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.
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.