Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3a82547
update
jwaldrip Jun 4, 2025
73715de
fix introspection
jwaldrip Jul 1, 2025
38ad2eb
add claude.md
jwaldrip Jul 1, 2025
e849361
Fix mix tasks to respect schema adapter for proper naming conventions
jwaldrip Jul 1, 2025
801f39d
feat: Add field description inheritance from referenced types
jwaldrip Jul 2, 2025
5970e31
gitignore local settings
jwaldrip Jul 2, 2025
ab51d53
fix sdl render
jwaldrip Sep 5, 2025
42c1c00
feat: Add @defer and @stream directive support for incremental delivery
jwaldrip Sep 5, 2025
2457921
docs: Add comprehensive incremental delivery documentation
jwaldrip Sep 5, 2025
b64aeeb
fix: Correct Elixir syntax errors in incremental delivery implementation
jwaldrip Sep 5, 2025
a227ae8
fix: Update test infrastructure for incremental delivery
jwaldrip Sep 5, 2025
fff271f
feat: Complete @defer and @stream directive implementation
jwaldrip Sep 5, 2025
326d604
docs: Add comprehensive incremental delivery guide
jwaldrip Sep 5, 2025
bfcec32
Add incremental delivery guide to documentation extras
jwaldrip Sep 5, 2025
ea5d665
Remove automatic field description inheritance
jwaldrip Sep 5, 2025
2dc02b3
Fix code formatting
jwaldrip Sep 5, 2025
11ca745
fix dialyzer
jwaldrip Sep 8, 2025
df669b6
remove elixir 1.19
jwaldrip Sep 8, 2025
fda1edf
fix: resolve @defer/@stream incremental delivery issues
jwaldrip Jan 12, 2026
7831a2c
docs: clarify supervisor startup and dataloader integration
jwaldrip Jan 12, 2026
81a24d2
chore: remove debug test file
jwaldrip Jan 12, 2026
993d3c4
feat: add on_event callback for monitoring integrations
jwaldrip Jan 13, 2026
2efc671
feat: add telemetry events for incremental delivery instrumentation
jwaldrip Jan 13, 2026
141a4ea
docs: add incremental delivery telemetry documentation
jwaldrip Jan 13, 2026
70f3b5b
docs: add incremental delivery to CHANGELOG
jwaldrip Jan 13, 2026
ae5150b
docs: clarify @defer/@stream are draft/RFC, not finalized spec
jwaldrip Jan 13, 2026
68d8421
feat: make @defer/@stream directives opt-in
jwaldrip Jan 13, 2026
8d92bb2
chore: fix formatting across incremental delivery files
jwaldrip Jan 13, 2026
0d48992
ci: restore Elixir 1.19 support
jwaldrip Jan 13, 2026
7f1bfe7
feat: unify streaming architecture for subscriptions and incremental …
jwaldrip Jan 13, 2026
96fa747
refactor: extract middleware and telemetry modules for better discove…
jwaldrip Jan 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.claude
.vscode
/bench
/_build
/cover
Expand All @@ -7,7 +9,6 @@
erl_crash.dump
*.ez
src/*.erl
.tool-versions*
missing_rules.rb
.DS_Store
/priv/plts/*.plt
Expand Down
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
# Changelog

## Unreleased
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changelog should be updated automatically


### Features

* **draft-spec:** Add `@defer` and `@stream` directives for incremental delivery ([#1377](https://github.com/absinthe-graphql/absinthe/pull/1377))
- **Note:** These directives are still in draft/RFC stage and not yet part of the finalized GraphQL specification
- **Opt-in required:** `import_directives Absinthe.Type.BuiltIns.IncrementalDirectives` in your schema
- Split GraphQL responses into initial + incremental payloads
- Configure via `Absinthe.Pipeline.Incremental.enable/2`
- Resource limits (max concurrent streams, memory, duration)
- Dataloader integration for batched loading
- SSE and WebSocket transport support
* **subscriptions:** Support `@defer` and `@stream` in subscriptions
- Subscriptions with deferred content deliver multiple payloads automatically
- Existing PubSub implementations work unchanged (calls `publish_subscription/2` multiple times)
- Uses standard GraphQL incremental delivery format that clients already understand
* **streaming:** Unified streaming architecture for queries and subscriptions
- New `Absinthe.Streaming` module consolidates shared abstractions
- `Absinthe.Streaming.Executor` behaviour for pluggable task execution backends
- `Absinthe.Streaming.TaskExecutor` default executor using `Task.async_stream`
- `Absinthe.Streaming.Delivery` handles pubsub delivery for subscriptions
- Both query and subscription incremental delivery share the same execution path
* **executors:** Pluggable task execution backends
- Implement `Absinthe.Streaming.Executor` to use custom backends (Oban, RabbitMQ, etc.)
- Configure via `@streaming_executor` schema attribute, context, or application config
- Default executor uses `Task.async_stream` with configurable concurrency and timeouts
* **telemetry:** Add telemetry events for incremental delivery
- `[:absinthe, :incremental, :delivery, :initial]` - initial response
- `[:absinthe, :incremental, :delivery, :payload]` - each deferred/streamed payload
- `[:absinthe, :incremental, :delivery, :complete]` - stream completed
- `[:absinthe, :incremental, :delivery, :error]` - error during streaming
* **monitoring:** Add `on_event` callback for custom monitoring integrations (Sentry, DataDog)

## [1.9.0](https://github.com/absinthe-graphql/absinthe/compare/v1.8.0...v1.9.0) (2025-11-21)


Expand Down
Loading