Skip to content

Commit 0eb4794

Browse files
committed
deploy: ef67059
1 parent 9efc336 commit 0eb4794

4 files changed

Lines changed: 83 additions & 81 deletions

File tree

execution/migration.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,9 @@ <h2 id="migration-philosophy">Migration Philosophy</h2>
218218

219219
<h2 id="migration-and-clean-up-script">Migration and Clean-Up Script</h2>
220220

221-
<p><code class="language-plaintext highlighter-rouge">graphql_migrate_execution</code> is a command-line development tool that can automate many common GraphQL-Ruby field resolver patterns. Check out its docs and try out: https://rmosolgo.github.io/graphql_migrate_execution/</p>
221+
<p><code class="language-plaintext highlighter-rouge">graphql_migrate_execution</code> is a command-line development tool that can automate many common GraphQL-Ruby field resolver patterns.</p>
222+
223+
<p>Check out its docs and try out: <a href="https://rmosolgo.github.io/graphql_migrate_execution/">https://rmosolgo.github.io/graphql_migrate_execution/</a></p>
222224

223225
<h2 id="production-considerations">Production Considerations</h2>
224226

@@ -314,7 +316,7 @@ <h2 id="combining-feature-flags-and-experiments">Combining feature flags and exp
314316

315317
<h2 id="compatibility-notes">Compatibility Notes</h2>
316318

317-
<p>Performance improvements in batching execution come at the cost of removing support for many “nice-to-have” features in GraphQL-Ruby by default. Those features are addressed here.</p>
319+
<p><code class="language-plaintext highlighter-rouge">Execution::Next</code>’s new structure means that some GraphQL-Ruby features behave differently (or aren’t supported at all, at least not yet). They are discussed one-by-one below.</p>
318320

319321
<h3 id="implicit-field-resolution">Implicit Field Resolution</h3>
320322

execution/next.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ <h2 id="background">Background</h2>
174174
<p>GraphQL-Ruby brings these breadth-first design principles to the open-source community with several novel techniques for implementing GraphQL:</p>
175175

176176
<ul>
177-
<li>Fields are resolved breadth-first using implicitly batched resolvers (no DataLoader). These run longer and hotter on application logic with no execution overhead.</li>
177+
<li>Fields are resolved breadth-first using implicitly batched resolvers. These run longer and hotter on application logic with no execution overhead.</li>
178178
<li>Batched resolvers may bind entire load sets to a single lazy promise to dramatically reduce promise bloat.</li>
179179
<li>Error handling is optimized into a second pass that only runs when errors actually occur.</li>
180180
<li>Stack profiling becomes much more organized with a linear flow and aggregate field spans, rather than fields getting split up across subtree repetitions.</li>
@@ -183,7 +183,7 @@ <h2 id="background">Background</h2>
183183

184184
<p>Breadth-first patterns can produce dramatic results in responses with a high degree of repetition: it’s not uncommon to see breadth batching run <strong>15x</strong> faster and use <strong>75% less</strong> memory than classic GraphQL Ruby execution. However – gains are relative. A flat tree with no lists will see little difference. A list of 2 resolving one field each will see a small gain, while a list of 100 resolving ten fields each will likely see dramatic results.</p>
185185

186-
<p>The downside is that many of GraphQL-Ruby’s “bonus features” – beyond the behavior described in the GraphQL Specification – add non-trivial latency when used. So, the task ahead is to “lift the ceiling” of performance in GraphQL-Ruby while retaining as much compatibility as possible and supporting a gradual transition to this new runtime engine.</p>
186+
<p>The downside is that many of GraphQL-Ruby’s “bonus features” – those that go beyond the behavior described in the GraphQL Specification – add non-trivial overhead when used. So, the task ahead is to “lift the ceiling” of performance in GraphQL-Ruby while retaining as much compatibility as possible and supporting a gradual transition to this new runtime engine.</p>
187187

188188
<h2 id="enabling-executionnext">Enabling Execution::Next</h2>
189189

guides.html

Lines changed: 76 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1500,7 +1500,14 @@ <h2 id="authorization-guides">Authorization</h2>
15001500

15011501

15021502

1503-
1503+
<li>
1504+
<p>
1505+
<a href="/authorization/overview.html">Overview</a>
1506+
<span class="guide-desc">
1507+
Overview of GraphQL authorization in general and an intro to the built-in framework.
1508+
</span>
1509+
</p>
1510+
</li>
15041511

15051512

15061513

@@ -1510,14 +1517,7 @@ <h2 id="authorization-guides">Authorization</h2>
15101517

15111518

15121519

1513-
<li>
1514-
<p>
1515-
<a href="/authorization/overview.html">Overview</a>
1516-
<span class="guide-desc">
1517-
Overview of GraphQL authorization in general and an intro to the built-in framework.
1518-
</span>
1519-
</p>
1520-
</li>
1520+
15211521

15221522

15231523

@@ -2404,6 +2404,10 @@ <h2 id="errors-guides">Errors</h2>
24042404

24052405

24062406

2407+
2408+
2409+
2410+
24072411

24082412

24092413

@@ -2436,10 +2440,6 @@ <h2 id="errors-guides">Errors</h2>
24362440

24372441

24382442

2439-
2440-
2441-
2442-
24432443

24442444

24452445

@@ -2691,14 +2691,6 @@ <h2 id="pagination-guides">Pagination</h2>
26912691

26922692

26932693

2694-
2695-
2696-
2697-
2698-
2699-
2700-
2701-
27022694

27032695

27042696

@@ -2727,6 +2719,14 @@ <h2 id="pagination-guides">Pagination</h2>
27272719

27282720

27292721

2722+
2723+
2724+
2725+
2726+
2727+
2728+
2729+
27302730

27312731

27322732

@@ -3279,8 +3279,6 @@ <h2 id="dataloader-guides">Dataloader</h2>
32793279

32803280

32813281

3282-
3283-
32843282

32853283

32863284

@@ -3330,6 +3328,8 @@ <h2 id="dataloader-guides">Dataloader</h2>
33303328

33313329

33323330

3331+
3332+
33333333

33343334

33353335

@@ -3582,6 +3582,14 @@ <h2 id="subscriptions-guides">Subscriptions</h2>
35823582

35833583

35843584

3585+
3586+
3587+
3588+
3589+
3590+
3591+
3592+
35853593

35863594

35873595
<li>
@@ -3636,14 +3644,6 @@ <h2 id="subscriptions-guides">Subscriptions</h2>
36363644

36373645

36383646

3639-
3640-
3641-
3642-
3643-
3644-
3645-
3646-
36473647

36483648

36493649

@@ -3973,8 +3973,6 @@ <h2 id="graphql-pro-guides">GraphQL Pro</h2>
39733973

39743974

39753975

3976-
3977-
39783976

39793977

39803978

@@ -4094,6 +4092,8 @@ <h2 id="graphql-pro-guides">GraphQL Pro</h2>
40944092

40954093

40964094

4095+
4096+
40974097

40984098

40994099

@@ -4233,15 +4233,6 @@ <h2 id="graphql-pro-operationstore-guides">GraphQL Pro - OperationStore</h2>
42334233

42344234

42354235

4236-
<li>
4237-
<p>
4238-
<a href="/operation_store/overview.html">Overview</a>
4239-
<span class="guide-desc">
4240-
Learn how persisted queries work and how OperationStore implements them.
4241-
</span>
4242-
</p>
4243-
</li>
4244-
42454236

42464237

42474238

@@ -4255,6 +4246,15 @@ <h2 id="graphql-pro-operationstore-guides">GraphQL Pro - OperationStore</h2>
42554246

42564247

42574248

4249+
4250+
<li>
4251+
<p>
4252+
<a href="/operation_store/overview.html">Overview</a>
4253+
<span class="guide-desc">
4254+
Learn how persisted queries work and how OperationStore implements them.
4255+
</span>
4256+
</p>
4257+
</li>
42584258

42594259

42604260

@@ -4550,14 +4550,6 @@ <h2 id="graphql-pro-defer-guides">GraphQL Pro - Defer</h2>
45504550

45514551

45524552

4553-
4554-
4555-
4556-
4557-
4558-
4559-
4560-
45614553

45624554

45634555

@@ -4603,6 +4595,14 @@ <h2 id="graphql-pro-defer-guides">GraphQL Pro - Defer</h2>
46034595

46044596

46054597

4598+
4599+
4600+
4601+
4602+
4603+
4604+
4605+
46064606

46074607

46084608

@@ -4857,15 +4857,6 @@ <h2 id="graphql-enterprise-rate-limiters-guides">GraphQL Enterprise - Rate Limit
48574857

48584858

48594859

4860-
<li>
4861-
<p>
4862-
<a href="/limiters/overview.html">Rate Limiters for GraphQL</a>
4863-
<span class="guide-desc">
4864-
Manage access to your GraphQL API
4865-
</span>
4866-
</p>
4867-
</li>
4868-
48694860

48704861

48714862

@@ -4876,6 +4867,15 @@ <h2 id="graphql-enterprise-rate-limiters-guides">GraphQL Enterprise - Rate Limit
48764867

48774868

48784869

4870+
<li>
4871+
<p>
4872+
<a href="/limiters/overview.html">Rate Limiters for GraphQL</a>
4873+
<span class="guide-desc">
4874+
Manage access to your GraphQL API
4875+
</span>
4876+
</p>
4877+
</li>
4878+
48794879

48804880

48814881

@@ -5145,6 +5145,10 @@ <h2 id="graphql-enterprise-object-cache-guides">GraphQL Enterprise - Object Cach
51455145

51465146

51475147

5148+
5149+
5150+
5151+
51485152
<li>
51495153
<p>
51505154
<a href="/object_cache/overview.html">GraphQL ObjectCache</a>
@@ -5199,10 +5203,6 @@ <h2 id="graphql-enterprise-object-cache-guides">GraphQL Enterprise - Object Cach
51995203

52005204

52015205

5202-
5203-
5204-
5205-
52065206

52075207

52085208

@@ -5458,6 +5458,8 @@ <h2 id="graphql-enterprise-changesets-guides">GraphQL Enterprise - Changesets</h
54585458

54595459

54605460

5461+
5462+
54615463
<li>
54625464
<p>
54635465
<a href="/changesets/overview.html">API Versioning for GraphQL-Ruby</a>
@@ -5547,8 +5549,6 @@ <h2 id="graphql-enterprise-changesets-guides">GraphQL Enterprise - Changesets</h
55475549

55485550

55495551

5550-
5551-
55525552

55535553

55545554

@@ -5747,7 +5747,14 @@ <h2 id="javascript-client-guides">JavaScript Client</h2>
57475747

57485748

57495749

5750-
5750+
<li>
5751+
<p>
5752+
<a href="/javascript_client/overview.html">Overview</a>
5753+
<span class="guide-desc">
5754+
Getting Started with GraphQL-Ruby's Javascript client, graphql-ruby-client.
5755+
</span>
5756+
</p>
5757+
</li>
57515758

57525759

57535760

@@ -5759,14 +5766,7 @@ <h2 id="javascript-client-guides">JavaScript Client</h2>
57595766

57605767

57615768

5762-
<li>
5763-
<p>
5764-
<a href="/javascript_client/overview.html">Overview</a>
5765-
<span class="guide-desc">
5766-
Getting Started with GraphQL-Ruby's Javascript client, graphql-ruby-client.
5767-
</span>
5768-
</p>
5769-
</li>
5769+
57705770

57715771

57725772

@@ -6340,8 +6340,6 @@ <h2 id="testing-guides">Testing</h2>
63406340

63416341

63426342

6343-
6344-
63456343

63466344

63476345

@@ -6389,6 +6387,8 @@ <h2 id="testing-guides">Testing</h2>
63896387

63906388

63916389

6390+
6391+
63926392

63936393

63946394

redirects.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"/queries/analysis/":"https://graphql-ruby.org/queries/ast_analysis.html","/schema/extending_the_dsl/":"https://graphql-ruby.org/type_definitions/extensions.html","/types/abstract_types/":"https://graphql-ruby.org/type_definitions/interfaces.html","/queries/mutations/":"https://graphql-ruby.org/mutations/mutation_classes.html","/relay/mutations/":"https://graphql-ruby.org/mutations/mutation_classes.html","/schema/type_errors/":"https://graphql-ruby.org/errors/overview.html","/queries/error_handling/":"https://graphql-ruby.org/errors/overview.html","/relay/connections/":"https://graphql-ruby.org/pagination/overview.html","/schema/testing":"https://graphql-ruby.org/testing/overview.html","/fields/functions":"https://graphql-ruby.org/fields/resolvers.html","/queries/instrumentation":"https://graphql-ruby.org/queries/tracing.html","/schema/limiting_visibility":"https://graphql-ruby.org/authorization/visibility.html"}
1+
{"/queries/analysis/":"https://graphql-ruby.org/queries/ast_analysis.html","/schema/extending_the_dsl/":"https://graphql-ruby.org/type_definitions/extensions.html","/types/abstract_types/":"https://graphql-ruby.org/type_definitions/interfaces.html","/queries/mutations/":"https://graphql-ruby.org/mutations/mutation_classes.html","/relay/mutations/":"https://graphql-ruby.org/mutations/mutation_classes.html","/relay/connections/":"https://graphql-ruby.org/pagination/overview.html","/schema/type_errors/":"https://graphql-ruby.org/errors/overview.html","/queries/error_handling/":"https://graphql-ruby.org/errors/overview.html","/schema/testing":"https://graphql-ruby.org/testing/overview.html","/fields/functions":"https://graphql-ruby.org/fields/resolvers.html","/queries/instrumentation":"https://graphql-ruby.org/queries/tracing.html","/schema/limiting_visibility":"https://graphql-ruby.org/authorization/visibility.html"}

0 commit comments

Comments
 (0)