Skip to content

Files

Latest commit

0df8e09 · Apr 9, 2025

History

History

developer

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Aug 24, 2023
Apr 9, 2025
Apr 9, 2024
Jul 10, 2023
Apr 9, 2024
Sep 7, 2023
Nov 10, 2021
Mar 19, 2025
Aug 14, 2020
Jun 28, 2024
May 10, 2023
Jul 8, 2022
Jan 3, 2024
Apr 9, 2024
Apr 15, 2024
Jul 8, 2022
Nov 2, 2021
Sep 29, 2024
Nov 2, 2021
Mar 1, 2025
Sep 20, 2024
Oct 14, 2024
Sep 12, 2024
Aug 22, 2023
Dec 18, 2024
Dec 4, 2023
Feb 19, 2025
Jul 8, 2022
Feb 19, 2025
Feb 6, 2024
Feb 16, 2024
May 2, 2022
Dec 7, 2022
Apr 12, 2023
Nov 24, 2023
Nov 24, 2023
Jan 16, 2025
Jan 29, 2024
Jan 3, 2025
Feb 19, 2025

Developer documentation

This is the root directory of the Materialize developer documentation, which describes our engineering process and philosophy.

For a more general introduction to Materialize, see the user documentation. For API documentation, see dev.materialize.com.

New contributors

If you're a new contributor, we recommend reading the following chapters in the user documentation, if you haven't already:

  1. Get Started
  2. What Is Materialized?
  3. Architecture Overview

Then, once you're up to speed, dive into the developer guide. The guide is intended to be skimmed from start to finish, to give you the lay of the land, and then browsed as reference material as you skill up on the codebase.

Table of contents

  • change-data-capture.md describes our change data capture (CDC) requirements.

  • ci-regexp.md describes how to mark a CI issue with a regular expression to ignore it in future CI runs.

  • code-coverage.md explains the system we have in place in CI for code coverage of pull requests.

  • debugging.md is a guide to debugging Materialize using rust-gdb / rust-lldb.

  • Our diagnostics guide is a work in progress. The sections we have so far are themselves works in progress. Feel free to add to them if you think up of something useful.

    • diagnostic-queries.md has queries to find the specific, problematic Timely/Differential operators.
    • diagnostic-questions.md is a checklist of higher-level things to look for and think about if something is not working as expected.
  • fast-compiles.md describes various tricks for speeding up Rust compilation.

  • feature-lifecycle.md outlines how we ship features.

  • guide.md walks you through hacking on this codebase and our development philosophy.

    Several sections of the guide are important enough to warrant their own documents:

    • guide-changes.md describes practices and expectations for committing and reviewing code.
    • guide-testing.md describes our various test suites and our testing philosophy.
  • mzbuild.md describes the custom build system we use to manage our Docker images and Docker Compose configurations.

  • project-management.md describes our processes for organizing, prioritizing, and shipping projects.

  • publishing.md details how to publish packages, like Rust crates or Docker images.

  • reading.md contains a reading list.

  • sqllogictest.md contains detailed information about our SQL logic testing framework.

  • tracing.md explains what tracing is, why we do it, and what our best practices are

  • We have basic introductions for developers for various parts of the system: