From edfc1f3eebe2584bfd44e3ff89c706c1c33127d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Manciot?= Date: Tue, 1 Sep 2026 07:04:53 +0200 Subject: [PATCH] docs(readme): curate the blog list, point it at the site, link the claims MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three problems in one section. The six links pointed at Medium, a gated copy of pages we host ourselves. The list was an inventory, which at the bottom of a 21 KB README reads as one grey block nobody scans. And the two strongest technical claims in the README — cross-index JOIN and zero-copy Arrow — cited no evidence anywhere near where they are made. The section is now one recent post plus four durable ones. The lead slot always holds the latest, flagged, so recency is visible without the list growing; the four below are chosen so each answers a question the README raises but does not settle — the JOIN execution model, the JDBC driver in a real client, compile-time validated queries, and the version-agnostic API. Two of those four describe Apache 2.0 core and two describe Elastic License 2.0 layers, which is the right balance for THIS repository's README. Order is the evaluator's question sequence, not reverse chronology, which would spend the one position a reader actually reads on whatever happened to ship last. Dates are omitted on purpose: on a curated list they invite a reader to notice entries from early 2026 and read the project as stale. The archive link carries recency, and all twelve posts are one click away. The benchmark gloss is ordered bytes off the cluster, then client memory, then wall time, per the standing claim-priority rule, and carries no figure and no date — so it stays true without re-verification at every release. Also links each claim where it is made rather than 350 lines later: The JOIN Matrix under Cross-Index JOINs, and the benchmark under Arrow Flight SQL, whose zero-copy claim had no evidence link at all. Links derived from the site's own frontmatter and checked against the emitted sitemap; no medium.com remains in the file. Co-Authored-By: Claude Opus 5 --- README.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 65645ab2..cb64c39e 100644 --- a/README.md +++ b/README.md @@ -171,6 +171,7 @@ LIMIT 10; - **Free in Community** — up to 2 cross-index JOINs per query on a single cluster, on all client drivers 📖 **[Cross-Index JOIN Documentation](documentation/sql/joins.md)** +📝 **How it works:** [The JOIN Matrix](https://softclient4es.dev/blog/the-join-matrix/) ### Materialized Views @@ -309,7 +310,8 @@ docker compose --profile grafana up |------------------------------------------|---------------------------------------| | ![Superset dashboard](demo/superset.png) | ![Grafana dashboard](demo/grafana.png) | -📖 **[Arrow Flight SQL Documentation](documentation/client/arrow_flight_sql.md)** +📖 **[Arrow Flight SQL Documentation](documentation/client/arrow_flight_sql.md)** +📊 **Benchmark:** [Ten million rows out of Elasticsearch, measured against Trino](https://softclient4es.dev/blog/ten-million-rows-parsed-once/) 📖 **[ADBC Driver Documentation](documentation/client/adbc_driver.md)** --- @@ -508,12 +510,13 @@ Materialized views with JOINs rely on **Elasticsearch Watcher** to automatically ## 📝 Blog Posts -- [Stop Rewriting Your Elasticsearch Code Every Version Upgrade](https://medium.com/@stephane.manciot_83064/stop-rewriting-your-elasticsearch-code-every-version-upgrade-641d4aabecaa) -- [Elasticsearch Queries That Never Break in Production](https://medium.com/@stephane.manciot_83064/elasticsearch-queries-that-never-break-in-production-35f25a7550b8) -- [It's 3 AM. Production Is Down. Your Only Tool Is curl.](https://medium.com/@stephane.manciot_83064/its-3-am-production-is-down-your-only-tool-is-curl-92aed0a26413) -- [Elasticsearch Schema Management Was Hell. Then Someone Typed SQL.](https://medium.com/@stephane.manciot_83064/elasticsearch-schema-management-was-hell-then-someone-typed-sql-41d9d3d37ed9) -- [A 47-Line curl Script to Insert One Document. Seriously.](https://medium.com/@stephane.manciot_83064/a-47-line-curl-script-to-insert-one-document-seriously-76f14c99f8e0) -- [Connect DBeaver to Elasticsearch. Yes, Really.](https://medium.com/@stephane.manciot_83064/connect-dbeaver-to-elasticsearch-yes-really-eff74342896c) +Longer reads on how the engine works and how it holds up. The full archive is at **[softclient4es.dev/blog](https://softclient4es.dev/blog/)** — free to read, no account. + +- 🆕 **New —** [Ten Million Rows Out of Elasticsearch, Parsed Once](https://softclient4es.dev/blog/ten-million-rows-parsed-once/) — measured against Trino: bytes off the cluster, client memory, then wall time +- [The JOIN Matrix: How Cross-Index JOIN Actually Works on Elasticsearch](https://softclient4es.dev/blog/the-join-matrix/) — the execution model behind cross-index JOINs, and where it stops +- [Connect DBeaver to Elasticsearch. Yes, Really.](https://softclient4es.dev/blog/connect-dbeaver-to-elasticsearch/) — the JDBC driver in a real desktop SQL client, step by step +- [Elasticsearch Queries That Never Break in Production](https://softclient4es.dev/blog/elasticsearch-queries-that-never-break/) — the field-name typo fails the build instead of production +- [Stop Rewriting Your Elasticsearch Code Every Version Upgrade](https://softclient4es.dev/blog/stop-rewriting-elasticsearch-code-every-upgrade/) — why the client API stays the same across ES 6 → 9 ---