Skip to content

Phase 5: large-file / streaming processing - #5

Merged
karlkauc merged 1 commit into
mainfrom
feature/enterprise-showcase-phase5
May 15, 2026
Merged

karlkauc merged 1 commit into
mainfrom
feature/enterprise-showcase-phase5

Conversation

@karlkauc

Copy link
Copy Markdown
Contributor

Phase 5 of the enterprise FundsXML showcase. Based on PR #4's branch so the diff is Phase 5 only.

Merge order: merge PR #4 first (it carries Phases 3+4 — Phase 3 never reached main due to the earlier stacked-PR/auto-delete issue). GitHub will then retarget this PR to main automatically and its diff collapses to just Phase 5.

Added — Large_File_Processing/

Constant-memory FundsXML processing (verified: ~16 MiB RSS Python / ~2 MiB heap Java for 20k positions, size-independent):

  • make_large_sample.py — streaming writer → big XSD-valid file
  • stream_aggregate.py (lxml iterparse, clears parsed siblings) + StreamAggregate.java (StAX pull parser, native Java, no JAXB/DOM) — identical totals at flat memory
  • split.py — split into independently XSD-valid chunks
  • delta_diff.py — INITIAL-vs-DELTA position diff (added/removed/changed; exit 1 on differences)

All verified locally. CI gains a step: generate a 30k-position file → stream-aggregate (Python+Java, totals asserted) → split + XSD-validate a chunk → identical-input delta (exit 0). README includes an ETL (Camel/NiFi) integration note. Top-level index → ✅.

Roadmap remaining: Phase 6 data binding / JSON (final phase).

🤖 Generated with Claude Code

Large_File_Processing/: constant-memory FundsXML processing.
- make_large_sample.py: streaming WRITER -> big XSD-valid file
- stream_aggregate.py (lxml iterparse) + StreamAggregate.java (StAX, native,
  no JAXB/DOM): identical totals at flat memory (verified ~16 MiB / ~2 MiB
  for 20k positions, size-independent)
- split.py: split into independently XSD-valid chunks
- delta_diff.py: INITIAL-vs-DELTA position diff (added/removed/changed),
  exit 1 on differences

All verified locally. CI gains a step that generates a 30k-position file,
stream-aggregates (Python+Java, totals asserted), splits + XSD-validates a
chunk, and runs an identical-input delta (exit 0). Top-level index updated.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Base automatically changed from feature/enterprise-showcase-phase4 to main May 15, 2026 18:02
@karlkauc
karlkauc merged commit debdc0a into main May 15, 2026
2 checks passed
@karlkauc
karlkauc deleted the feature/enterprise-showcase-phase5 branch May 15, 2026 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant