Skip to content

Latest commit

 

History

History
43 lines (30 loc) · 1.74 KB

File metadata and controls

43 lines (30 loc) · 1.74 KB

evitaDB - Claude Code Guidelines

evitaDB is a specialized NoSQL in-memory database with easy-to-use API for e-commerce systems. It handles complex e-commerce tasks with low-latency and is designed to act as a fast secondary lookup/search index for front stores.

Building

  • Primary: try to use IntelliJ MCP for building and running the project, when not possible use Maven
  • CLI Build Tool: Maven
  • Java Version: OpenJDK 17 (requires Maven toolchains configuration)

Build command:

mvn clean install

Key External Libraries

  • RoaringBitmap: For working with bitmaps
  • Kryo: For binary serialization and deserialization
  • Netty and Armeria: For web server and client functionality
  • Logback: For logging
  • Jackson: For JSON serialization and deserialization
  • gRPC Java: For gRPC functionality
  • GraphQL Java: For GraphQL functionality
  • Byte Buddy: For runtime code generation
  • MinIO Java: For S3-compatible storage operations

Project Structure

See "How this repository is organized" in README.md for module descriptions and dependency graph.

Code Quality Requirements

  • Line coverage with unit tests must be >= 70%
  • All classes and methods must have comprehensible JavaDoc
  • No TODO statements in committed code
  • No commented out code

Defensive Design

  • Never silently skip unexpected states. If a code path should be unreachable (e.g., an else after exhaustive enum checks, a default in a switch over a closed enum), it must throw an exception (GenericEvitaInternalError or equivalent) — never continue, return, break, or no-op.
  • Treat every unhandled enum value, unexpected type, or impossible branch as a programming error that must surface immediately at runtime.