This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git
The following commit(s) were added to refs/heads/main by this push:
new d999e91fd website: Add Apache OpenDAL 2025 Roadmap: Perfecting
Production Adoption (#5680)
d999e91fd is described below
commit d999e91fd4f283eedb5d6d0d280b9c52aacdb081
Author: Xuanwo <[email protected]>
AuthorDate: Mon Mar 3 16:42:31 2025 +0800
website: Add Apache OpenDAL 2025 Roadmap: Perfecting Production Adoption
(#5680)
* website: Add Apache OpenDAL 2025 Roadmap: Perfecting Production Adoption
Signed-off-by: Xuanwo <[email protected]>
* polish
Signed-off-by: Xuanwo <[email protected]>
* address comments
Signed-off-by: Xuanwo <[email protected]>
* Apply suggestions from code review
Co-authored-by: tison <[email protected]>
* Apply suggestions from code review
Co-authored-by: tison <[email protected]>
---------
Signed-off-by: Xuanwo <[email protected]>
Co-authored-by: tison <[email protected]>
---
.../2025-03-01-2025-roadmap/adoption-curve.png | Bin 0 -> 26376 bytes
website/blog/2025-03-01-2025-roadmap/index.md | 81 +++++++++++++++++++++
.../opendal-python-downloads.png | Bin 0 -> 248828 bytes
.../opendal-rust-downloads.png | Bin 0 -> 323902 bytes
4 files changed, 81 insertions(+)
diff --git a/website/blog/2025-03-01-2025-roadmap/adoption-curve.png
b/website/blog/2025-03-01-2025-roadmap/adoption-curve.png
new file mode 100644
index 000000000..6a036694f
Binary files /dev/null and
b/website/blog/2025-03-01-2025-roadmap/adoption-curve.png differ
diff --git a/website/blog/2025-03-01-2025-roadmap/index.md
b/website/blog/2025-03-01-2025-roadmap/index.md
new file mode 100644
index 000000000..f66254071
--- /dev/null
+++ b/website/blog/2025-03-01-2025-roadmap/index.md
@@ -0,0 +1,81 @@
+---
+title: "Apache OpenDAL 2025 Roadmap: Perfecting Production Adoption"
+date: 2025-03-01
+tags: [announcement]
+authors: xuanwo
+---
+
+Hi everyone, long time no see. Although we have been actively developing
OpenDAL and consistently releasing updates, we haven’t provided a clear
overview of where OpenDAL is heading. This post aims to address that. Here, we
will discuss OpenDAL's current position and the future directions we are moving
toward.
+
+I hope this post serves as a guide for our development, encourages more people
to contribute, and ultimately helps achieve the vision of OpenDAL.
+
+<!--truncate-->
+
+## What's OpenDAL?
+
+Apache OpenDAL (`/ˈoʊ.pən.dæl/`, pronounced "OH-puhn-dal") is an Open Data
Access Layer that enables seamless interaction with diverse storage services.
Our VISION is [**One Layer, All Storage**](https://opendal.apache.org/vision),
and our core principles are Open Community, Solid Foundation, Fast Access,
Object Storage First, and Extensible Architecture.
+
+We are building:
+
+- [A core library built in Rust](https://crates.io/crates/opendal) that
supports all services at zero cost and offers unified retry, concurrency,
logging, tracing, metrics, timeout and more layers.
+- Language bindings for [Python](https://pypi.org/project/opendal/),
[Java](https://central.sonatype.com/artifact/org.apache.opendal/opendal),
[Node.js](https://www.npmjs.com/package/opendal), C/C++, and more.
+- Integrations with various frameworks, including
[Parquet](https://crates.io/crates/parquet-opendal),
[FUSE](https://crates.io/crates/fuse3_opendal), [DAV
server](https://github.com/messense/dav-server-rs), and others.
+- Binaries for different use cases, such as
[CLI](https://crates.io/crates/oli) and [FUSE](https://crates.io/crates/ofs).
+
+In short, through OpenDAL, users can access ALL storage services within ONE
layer.
+
+## Where's OpenDAL?
+
+OpenDAL's rust core has already released 143 versions, has [67 reverse
dependencies](https://crates.io/crates/opendal/reverse_dependencies) listed on
[crates.io](http://crates.io/), and is used by [612
projects](https://github.com/apache/opendal/network/dependents) as recorded on
GitHub.
+
+OpenDAL's production users include databases such as
[Databend](https://github.com/databendlabs/databend),
[GreptimeDB](https://github.com/GreptimeTeam/greptimedb), and
[RisingWave](https://github.com/risingwavelabs/risingwave), as well as tools
like [Loco](https://loco.rs/), [sccache](https://github.com/mozilla/sccache),
and [Vector](https://vector.dev/).
+
+
+
+Apart from OpenDAL's Rust core, its various language bindings have also seen
significant growth over the past year. Take python binding as an example.
[Dify](https://github.com/langgenius/dify/), an LLM app development platform,
is using OpenDAL to access different storage services.
+
+
+
+## What's next for OpenDAL?
+
+The following is the famous technology adoption lifecycle curve. If I were to
indicate the position of OpenDAL, I would say it is at the end of the
Innovators stage and moving toward the Early Adopters stage.
+
+
+(picture from TechTarget [technology adoption
lifecycle](https://www.techtarget.com/searchcio/definition/technology-adoption-lifecycle))
+
+Innovators are adopting OpenDAL. Projects like Databend, RisingWave,
GreptimeDB, and sccache have been using OpenDAL in production for years.
However, early adopters are still hesitant to use OpenDAL—and they have valid
reasons.
+
+For examples:
+
+- OpenDAL hasn't reached version 1.0 yet and still introduces breaking changes
from time to time, sometimes even requiring code modifications for an OpenDAL
upgrade. This also creates a burden for libraries that depend on OpenDAL, as
every breaking change affects them as well.
+- OpenDAL lacks comprehensive documentation, particularly for its bindings in
Python and Java. Users need to invest significant effort and love to integrate
OpenDAL bindings into their projects.
+- OpenDAL lacks some important features, such as checksum support, caching,
metrics of underlying http requests and initialization from a URI.
+
+I believe we should perfect production adoption in 2025 to get OpenDAL ready
for early adopters. Only in this way can we implement our vision: **One Layer,
All Storage.**
+
+## What to do in 2025?
+
+Our plans for 2025 include the following:
+
+### Features Needed in Production
+
+In 2025, we plan to implement the following features that are importmant for
production adoption:
+
+- [Context](https://github.com/apache/opendal/issues/5480): Introduce context
in OpenDAL so that services and layers can share the same context. This enables
users to gain deeper insights into OpenDAL's internal operations by
incorporating metrics, logging, and tracing into the underlying HTTP client we
use.
+- [Versioning](https://github.com/apache/opendal/issues/2611): Introduce full
file versioning support in OpenDAL, enabling users to read, write, delete,
list, and restore versioned files. This functionality will allow users to
recover mistakenly deleted files and facilitate disaster recovery.
+- [Checksum](https://github.com/apache/opendal/issues/5549): Introduce
end-to-end checksum support in OpenDAL, enabling users to perform checksums
during reading and writing without worrying about bit flips in memory or over
the network.
+- [Caching](https://github.com/apache/opendal/issues/5678): Provide
high-quality built-in cache support in OpenDAL while ensuring users have the
flexibility to implement their own caching logic.
+- [Initialization From URI](https://github.com/apache/opendal/issues/3022):
Allow users to initialize OpenDAL from a URI string, making it easier to
configure and use OpenDAL in various environments.
+
+### Improvements Needed for Production
+
+In 2025, we plan to improve the following aspects of OpenDAL to ensure users
can confidently use it in production.
+
+- Documentation: Improve the documentation for OpenDAL, particularly for
bindings like Python, Node.js, and Java. The first step is to generate
well-structured documentation for the configuration values of each service.
+- Communitation: Bring Back Our Community Meetings. OpenDAL used to hold
regular tri-weekly meetings, but we have been unable to maintain them in the
last year. We now plan to revive these meetings and encourage more face-to-face
discussions in the coming years.
+
+## Conclusion
+
+2025 marks the third year of the OpenDAL community. A huge thanks to all
OpenDAL contributors and users for helping us reach this milestone. There's
still a long way to go to achieve our vision, and we invite you all to join us
on this incredible journey!
+
+[Discuss about this post
here](https://github.com/apache/opendal/discussions/5679)
diff --git a/website/blog/2025-03-01-2025-roadmap/opendal-python-downloads.png
b/website/blog/2025-03-01-2025-roadmap/opendal-python-downloads.png
new file mode 100644
index 000000000..475d700f4
Binary files /dev/null and
b/website/blog/2025-03-01-2025-roadmap/opendal-python-downloads.png differ
diff --git a/website/blog/2025-03-01-2025-roadmap/opendal-rust-downloads.png
b/website/blog/2025-03-01-2025-roadmap/opendal-rust-downloads.png
new file mode 100644
index 000000000..c287ee654
Binary files /dev/null and
b/website/blog/2025-03-01-2025-roadmap/opendal-rust-downloads.png differ