Skip to content

Conversation

@Aditya41150
Copy link
Contributor

Currently, the "Merge Engine" documentation is buried deep in the hierarchy: Table Design → Table Types → Primary Key Tables → Merge Engine.

This PR restructures the documentation hierarchy to elevate Merge Engines to a top-level concept under Table Design, improving visibility and discoverability.

Changes:

  • Moved merge-engines directory from table-design/table-types/pk-table/merge-engines to table-design/merge-engines.
  • Updated sidebar positions to ensure a logical flow:
    1. Overview
    2. Table Types
    3. Merge Engines
    4. Data Distribution
    5. Data Types
  • Fixed all internal documentation links in affected files.

This change highlights the strategic importance of merge logic in Fluss's architecture, especially the Aggregation Merge Engine for real-time feature engineering.

Fixes #2298

This commit restructures the documentation hierarchy to elevate Merge Engines
to a top-level concept under Table Design, improving visibility and discoverability.

Changes:
- Moved merge-engines directory from table-design/table-types/pk-table/merge-engines
  to table-design/merge-engines
- Updated sidebar positions: Overview (1), Table Types (2), Merge Engines (3),
  Data Distribution (4), Data Types (5)
- Fixed all internal documentation links to reflect the new structure
- Updated references in engine-flink/options.md and pk-table/index.md

This change highlights the strategic importance of merge logic in Fluss's
architecture, especially the newly introduced Aggregation Merge Engine for
real-time feature engineering.

Closes apache#2298
Copy link
Member

@wuchong wuchong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the contribuiton. Since we have already extract all the sub-pages from pk-table directory, we can refator the primary key page into a normal page like log-table.md. Could you convert the pk-table directory into a normal pk-table.md page like log-table.md?

pk-table
  |-- _category_.json
  |-- index.md

2. [FirstRow Merge Engine](merge-engines/first-row.md)
3. [Versioned Merge Engine](merge-engines/versioned.md)
4. [Aggregation Merge Engine](merge-engines/aggregation.md)
1. [Default Merge Engine (LastRow)](../../merge-engines/default.md)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's suggested to use paths relative to the docs/ directory
table-design/merge-engines/default.md, see https://fluss.apache.org/community/how-to-contribute/contribute-docs/#documentation-linking


The **Default Merge Engine** behaves as a LastRow merge engine that retains the latest record for a given primary key. It supports all the operations: `INSERT`, `UPDATE`, `DELETE`.
Additionally, the default merge engine supports [Partial Update](table-design/table-types/pk-table/index.md#partial-update), which preserves the latest values for the specified update columns.
Additionally, the default merge engine supports [Partial Update](../table-types/pk-table/index.md#partial-update), which preserves the latest values for the specified update columns.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The original link should still work.

Comment on lines 1018 to 1019
- [Primary Key Tables](../table-types/pk-table/index.md)
- [Fluss Client API](../../apis/java-client.md)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto. It's suggested to use paths relative to the docs/ directory.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the review @wuchong! I've converted the pk-table directory into a single pk-table.md file and updated all internal documentation links to use root-relative paths as suggested.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Aditya41150 sorry, I didn't see the changes. Did you push the commit to your branch?

@wuchong
Copy link
Member

wuchong commented Jan 4, 2026

Besdies, please do not use "git merge" to merge branches, otherwise the changes is hard to track. Please use "git rebase" to rebase branches instead. IntelliJ IDEA provide an easy tool to do git rebase, you can find the tool via VCS -> Git -> Rebase.

@Aditya41150
Copy link
Contributor Author

@wuchong Sorry about that! I've now pushed the changes. The pk-table directory has been converted to a single pk-table.md file and all internal links have been updated to use root-relative paths.

Also, thank you for the tip about using git rebase instead of git merge - I'll make sure to follow that practice going forward!

@wuchong
Copy link
Member

wuchong commented Jan 5, 2026

@Aditya41150 there are some link broken, could you fix that?

You can also run npm run start under website directory to test the local changes:
https://fluss.apache.org/community/how-to-contribute/contribute-docs/#preview-changes

- Fix all image paths to use correct relative paths (../assets/) instead of root-relative paths
- Fix all internal documentation links to use root-relative paths (/path/to/doc.md) as per Fluss documentation guidelines
- Affected files:
  - concepts/architecture.md: Fixed architecture.png path
  - engine-flink/delta-joins.md: Fixed delta_join.jpg path and lookups.md link
  - engine-flink/procedures.md: Fixed security/overview.md link
  - streaming-lakehouse/overview.md: Fixed streamhouse.png path
  - table-design/overview.md: Fixed data_organization.png path and partitioning.md link
  - table-design/table-types/pk-table.md: Fixed all merge engine links and Flink documentation links
@Aditya41150
Copy link
Contributor Author

@wuchong Thank you for catching those broken links! I've now fixed all the broken image paths and documentation links:

Image paths fixed (using correct relative paths):

  • concepts/architecture.md: architecture.png
  • engine-flink/delta-joins.md: delta_join.jpg
  • streaming-lakehouse/overview.md: streamhouse.png
  • table-design/overview.md: data_organization.png

Documentation links fixed (using root-relative paths as per guidelines):

  • table-design/table-types/pk-table.md: All merge engine links and Flink documentation links
  • engine-flink/procedures.md: Security documentation link
  • engine-flink/delta-joins.md: Lookups documentation link
  • table-design/overview.md: Partitioning documentation link

I've tested the changes locally with npm run start and confirmed that all images load correctly and there are no compilation errors. All links now follow the Fluss documentation guidelines.

@wuchong wuchong merged commit 3a439c8 into apache:main Jan 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move "Merge Engine" to the top-level of "Table Design"

2 participants