docs(documents): TODO for SQL aggregation at 50k rows (#385)

Documents the in-memory aggregation trade-off in getDensity so the next
perf audit knows the row-count threshold at which to revisit. Addresses
Markus's review concern.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-05-08 09:20:49 +02:00
parent 5d92f5a32b
commit 6aceafda8e

View File

@@ -139,6 +139,11 @@ public class DocumentService {
* with {@code findAll(spec)} and the archive size (≈5k docs) keeps this
* well under the 200ms p95 target. Cache-Control: max-age=300 on the
* controller layer absorbs repeated browse loads.
*
* <p>TODO: revisit when {@code documents > 50k} — at that scale move the
* aggregation into SQL (GROUP BY TO_CHAR(meta_date, 'YYYY-MM')) and accept
* that the criteria/specification surface needs a parallel native-query
* path. Surface this in the next perf audit.
*/
public DocumentDensityResult getDensity(
String text, UUID sender, UUID receiver,