Friends of OpenJDK Today

Five Apache Projects You Probably Haven’t Heard Of (Yet)

December 24, 2023

Author(s)

  • Avatar photo
    Nicolas Frankel

    Nicolas is a developer advocate with 15+ years experience consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). ... Learn more

In early 2021, I started to work on the Apache APISIX project. I have to admit that at the time I had never heard about it before.

As a result, in this article, I'd like to introduce some Apache projects that are less well-known than HTTPD or Kafka.

Apache APISIX

APISIX is an API Gateway. It builds upon OpenResty, a Lua layer built on top of the famous nginx reverse-proxy. APISIX adds abstractions to the mix, e.g., Route, Service, Upstream, and offers a plugin-based architecture.

Lots of plugins are provided out of the box:

  • Transformation: response-rewrite, proxy-rewrite, gRPC, body-transformer, etc.
  • Authentication: JWT, OPA, Keycloak, OpenID Connect, etc.
  • Observability: metrics, logging, and traces
  • Traffic: rate limiting, request validation, canary release, etc.
  • Serverless: Azure functions, AWS Lambdas, OpenWhisk, etc.
  • Messaging: Kafka, Dubbo, and MQTT
  • Pre- and post-processing

If no plugin fits your requirements, writing your own is possible.

You can leverage APISIX on Kubernetes as an Ingress Controller. APISIX provides a Helm Chart for this.

Apache ShardingSphere

ShardingSphere claims to offer an ecosystem able to transform any database into a distributed database system. It acts as a proxy between your code and your database(s). It comes in two flavors:

  • ShardingSphere-JDBC: a JDBC driver that acts as a proxy to your database(s). It's only available for JVM-based applications.
  • ShardingSphere-Proxy: a technology-independent deployable component.

ShardingSphere offers several core features:

  • Data Sharding is the core feature, as the project's name implies. Most use cases focus on scaling purposes, but there are others, e.g., data residency requirements.
  • XA transactions for distributed transactions
  • Read/write splitting
  • Data encryption
  • etc.

Apache SeaTunnel

Apache SeaTunnel is a data integration platform that offers the three pillars of data pipelines: sources, transforms, and sinks. It offers an abstract API over three possible engines: the Zeta engine from SeaTunnel or a wrapper around Apache Spark or Apache Flink. Be careful, as each engine comes with its own set of features.

The power of SeaTunnel comes from its rich connector ecosystem. It does provide traditional SQL connectors, e.g., Oracle, PostgreSQL, and MySQL, and NoSQL ones, e.g., MongoDB, Cassandra, and Elasticsearch. However, it also comes bundled with some original ones, including Jira, Google Sheets, and Notion. I have a particular fondness for the CDC connector sources over MongoDB, MySQL, and Microsoft SQL Server.

SeaTunnel comes with a web UI, which provides visual management of jobs, scheduling, running, and monitoring capabilities.

Apache SkyWalking

Apache SkyWalking is an APM tool, focusing on microservices, Cloud Native apps, and Kubernetes architectures. It builds its architecture on four kinds of components:

  • Probes collect telemetry data (metrics, logs, traces, and events). They support multiple output formats, including OpenTelemetry.
  • The platform aggregates and processes data
  • The storage offers an interface over a supported backend. Supported backends include ElasticSearch, H2, MySQL, TiDB, and BanyanDB, a custom storage engine developed for SkyWalking
  • Finally, a web UI allows visualizing SkyWalking's data

Skywalking supports a couple of formats, including OpenTelemetry. Given the industry's current focus on OpenTelemetry, I recommend seriously considering this option.

Apache Doris

Apache Doris is a real-time data warehouse.

Doris promotes four primary scenarios:

  • Reporting analysis
  • Ad-Hoc query
  • Unified data warehouse construction
  • Data lake query

Doris is mostly MySQL compliant so that you can use a regular MySQL client.

Discussion

The Apache Foundation hosts the projects above, but they have another thing in common: they were all incepted in China. Have a look at the Apache project list. You'll probably be amazed at the sheer number; it's close to 300!

In recent years, the number of projects incepted at the Apache Foundation has increased drastically. Look again at the list; I'm sure you only know a few of them - lots come from China. The trend is only growing; it's a great move to integrate China with the OpenSource world!

Just as I finish this post, my friend Stefano Fago has posted on another relevant project, Apache Paimon, a streaming data lake platform.

To go further:


Originally published at A Java Geek on December 17th, 2023

Topics:

Related Articles

View All

Author(s)

  • Avatar photo
    Nicolas Frankel

    Nicolas is a developer advocate with 15+ years experience consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). ... Learn more

Comments (0)

Your email address will not be published. Required fields are marked *

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

Save my name, email, and website in this browser for the next time I comment.

Subscribe to foojay updates:

https://foojay.io/feed/
Copied to the clipboard