<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rinky Goyal @GraphQLConf</title>
    <description>The latest articles on DEV Community by Rinky Goyal @GraphQLConf (@rinky_05).</description>
    <link>https://dev.to/rinky_05</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F191167%2F83ce5995-86a0-4973-8295-1f3a903a0988.jpg</url>
      <title>DEV Community: Rinky Goyal @GraphQLConf</title>
      <link>https://dev.to/rinky_05</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rinky_05"/>
    <language>en</language>
    <item>
      <title>@CacheResult of Hystrix is not working with RxJava</title>
      <dc:creator>Rinky Goyal @GraphQLConf</dc:creator>
      <pubDate>Thu, 22 Aug 2019 17:49:59 +0000</pubDate>
      <link>https://dev.to/rinky_05/cacheresult-of-hystrix-is-not-working-with-rxjava-1enk</link>
      <guid>https://dev.to/rinky_05/cacheresult-of-hystrix-is-not-working-with-rxjava-1enk</guid>
      <description>&lt;p&gt;I am using Hystrix request level caching but with RxJava new threads are created depending on the kind of schedulers. I am using schedulers.io.&lt;br&gt;
I get error Hystrix Request Context should be initialized wheb it's already initialized but they are threadlocal and hence to just main thread.&lt;br&gt;
Can they be used together? &lt;/p&gt;

</description>
      <category>discuss</category>
      <category>java</category>
    </item>
    <item>
      <title>Parallelization in Java</title>
      <dc:creator>Rinky Goyal @GraphQLConf</dc:creator>
      <pubDate>Fri, 12 Jul 2019 19:02:34 +0000</pubDate>
      <link>https://dev.to/rinky_05/parallelization-in-java-52bh</link>
      <guid>https://dev.to/rinky_05/parallelization-in-java-52bh</guid>
      <description>&lt;p&gt;I am exploring between completeableFuture, RxJava,Reactor to? Any recommendations.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>java</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Key takeaways from GraphQL Conference @Berlin, Germany</title>
      <dc:creator>Rinky Goyal @GraphQLConf</dc:creator>
      <pubDate>Sun, 07 Jul 2019 13:31:41 +0000</pubDate>
      <link>https://dev.to/rinky_05/key-takeaways-from-graphql-conference-berlin-germany-34d1</link>
      <guid>https://dev.to/rinky_05/key-takeaways-from-graphql-conference-berlin-germany-34d1</guid>
      <description>&lt;p&gt;This article has been originally posted on my Medium account &lt;a href="https://medium.com/@rinx.goyal/key-takeaways-from-graphql-conference-berlin-germany-40ead85a9c2"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Day 1
&lt;/h1&gt;

&lt;p&gt;Below are my takeaways from Day 1 of the GraphQL conference which took place in Berlin/Germany. Amazing talks by fantastic speakers!!&lt;/p&gt;

&lt;h1&gt;
  
  
  Dan Schafer’s talk — GraphQL before GraphQL
&lt;/h1&gt;

&lt;p&gt;Everything has to be coded to be async — even when you think it’s not needed to be async, still make it async.&lt;br&gt;
Resolvers have to be async&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;GraphQL was never meant to solve for Authorization, Caching of results, below, rate Limiting when it was developed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resolvers should be thin and should only map to business logic and not contain actual business logic&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Sashko Stubailo explained how easy it is to build custom GraphQL tooling for specific use-cases
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Write tests with less boilerplate code and ability to write custom overrides for testing edge cases, error states using this graphql-tools. Read more &lt;a href="https://www.freecodecamp.org/news/a-new-approach-to-mocking-graphql-data-1ef49de3d491/"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Preventing a breaking change by checking if a GraphQL field is being referenced or not. Read about it &lt;a href="https://gist.github.com/stubailo/7a2071c4e568a185726c583073695bc0"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Sasha Solomon talked about the errors array in GraphQL response and how to deal with them in a better manner.
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;All errors end up in the errors array, but not all errors are the same. &lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some of them are real errors like server not available, bad gateway but others like might just be ‘alternative results’ like a blocked user, suspended user, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To differentiate errors like above, use union types and basis the type in response, the client can decide what to do.&lt;br&gt;
union UserResult = User| IsBlocked | Suspended&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key thing is not to create too many types and keep it only to important ones.&lt;br&gt;
This talk was easy to grasp and implement at the get-go :)&lt;/p&gt;

&lt;h1&gt;
  
  
  Best Practices around migrating to GraphQL
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Think about making incremental changes, edge cases and ability to safely rollback&lt;/li&gt;
&lt;li&gt;Build adaptors for easy migration
Automated test suites are super important to do this herculean task&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Marc-André Giroux’s talk about distributing schemas in GraphQL
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Always ask the question if distributing schemas is really necessary?&lt;/li&gt;
&lt;li&gt;Schema stitching helps us achieve schema distribution but business logic often leaks into the API gateway and it ends up being more complex than just simple “proxying”
Ideally an API gateway should be like below:&lt;/li&gt;
&lt;li&gt;Decouple” the clients from the “services” involved in the use cases&lt;/li&gt;
&lt;li&gt;Avoid domain logic&lt;/li&gt;
&lt;li&gt;Schemas should be easy to import in the gateway
Talk slides &lt;a href="https://speakerdeck.com/xuorig/so-you-want-to-distribute-your-graphql-schema-16fd4e47-eae7-4437-be2a-5e9b803a675e?slide=44"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This was my attempt to write down what was captured in my notebook and brain :D &lt;br&gt;
I will be writing another blog post about learning from Day 2. Stay tuned!&lt;/p&gt;

</description>
      <category>graphql</category>
      <category>womenintech</category>
      <category>webdev</category>
      <category>techtalks</category>
    </item>
  </channel>
</rss>
