You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Proposers

Approvers

Status

Current state: Under Discussion

Discussion thread: here

JIRA: here

Released: <Hudi Version>

Abstract

This RFC aims at improving the Hudi web documentation for users and the process of updating docs for developers.

Background

There are a few gaps we observed regarding the docs:

  • We only have one version of docs kept at the asf-site branch for the latest release.  Given that each version has new features and improvements, some involving configuration and parameter changes compared to to previous versions, the single version of docs can create confusion for users using a previous release of Hudi.
  • There's no API docs generated from the code.
  • The landing page of hudi.apache.org shows detailed information about Hudi.  It would be good to show highlights of Hudi at the high level and other useful information (powered-by, slack group, etc) directly on the landing page.
  • Current process of building, testing, and deploying docs (i.e the content powering hudi.apache.org) is mostly manual.

Implementation

To address these gaps, restructuring of the docs is needed to make the process easier.  The diagram below shows the structuring and the workflow.

Versioning docs

The release-specific documentation should evolve with the code changes.  Thus, maintaining the docs regarding design, implementation details and API examples on master under /docs would make things easier.  In this way, the code and the corresponding docs change can coexist in the same PR.  Specific pages around these include:

  • Quickstart
  • Concepts
  • Writing Data
  • Querying Data
  • Configuration
  • Performance
  • Administering

In addition to these docs, a new set of API docs will be generated by javadoc for each release (similar to this).

Content regarding the general information of Hudi should remain in asf-site branch:

  • Use Cases
  • Talks & Powered By
  • Comparison
  • Releases
  • Community
  • Code
  • Developers
  • Feedback

The release-specific docs on master and general content in asf-site are generated separately.  The generated web pages are then uploaded to the hosting server for the Hudi site.  The landing page references the specific version of docs content through links.

For backward compatibility, we can manually generate the content for current (0.5.0-incubating) and one or two old releases (0.4.6/0.4.7), to fit into the new docs structure. 

Automating docs update

To make updating and deploying docs content easier, a set of scripts automating the above process will be added.  In this way, once the changes to the /docs on either master or asf-site are landed, the update content pages can be uploaded to the hosting server of Hudi website.  The API docs on master branch is also going to be maintained in this way.

Redesigning landing page

The landing page should serve the following purposes, with as fewer words as possible

  1. Answer what is Hudi
  2. Provide insights into why someone should use Hudi (some answers in FAQ)
  3. Highlight key features
  4. Have the link to the comparison page if the user would like to read more
  5. Direct links/buttons to join the community

Here are the proposed changes corresponding to each item:

  1. Simplify the existing content to 2-3 sentences, with a diagram showing the interoperability with existing data ecosystem
  2. 3-4 sentences on why someone should use Hudi, with a link to the FAQ
  3. Highlight a few key features, each one elaborated with the technical details in 2-3 sentences, something like the following (from this set of slides by Vinoth and Balaji)
    E.g., "Near real-time data ingestion to Cloud storage/DFSBy carefully managing how data is laid out in storage & how it’s exposed to queries, Hudi is able to power a rich data ecosystem where external sources can be ingested in near real-time and made available for interactive SQL Engines like Presto & Spark"
  4. Have a few sentences on the comparison against other solutions.  Have a link to the detailed comparison page.
  5. Direct links for joining the slack group and mailing list.  Right now these links are in the community page and requires additional clicks and reading.

For the detailed comparison page, we could have an interactive table to compare Hudi with other solutions regarding different aspects (each aspect can be clickable to show detailed explanation):

The top menu bar on the landing page is still kept.

Rollout/Adoption Plan

  • No impact on existing users regarding APIs as this is docs website change.

Test Plan

  • Test the content organization locally to make sure the links are working and the content is readable


  • No labels