<?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: Cédrick Lunven</title>
    <description>The latest articles on DEV Community by Cédrick Lunven (@clun).</description>
    <link>https://dev.to/clun</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%2F1721%2F2294064a-ebc2-4a1a-89e3-dcf9fbd50cee.png</url>
      <title>DEV Community: Cédrick Lunven</title>
      <link>https://dev.to/clun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/clun"/>
    <language>en</language>
    <item>
      <title>Build Your First App with JavaScript, Node.js, and DataStax Astra DB</title>
      <dc:creator>Cédrick Lunven</dc:creator>
      <pubDate>Tue, 25 Oct 2022 19:47:17 +0000</pubDate>
      <link>https://dev.to/datastax/build-your-first-app-with-javascript-nodejs-and-datastax-astra-db-30ep</link>
      <guid>https://dev.to/datastax/build-your-first-app-with-javascript-nodejs-and-datastax-astra-db-30ep</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzo1gqvxlijt29dj5jyxg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzo1gqvxlijt29dj5jyxg.jpeg" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is the first of a three-part app development workshop series designed to help developers understand technologies like Node.js, GraphQL, React, Netlify, and JavaScript to kickstart their app development portfolio. The full series is &lt;a href="https://www.youtube.com/playlist?list=PL2g2h-wyI4Sr09jyk19cSwv2Iwcl1V1Fl" rel="noopener noreferrer"&gt;available on YouTube&lt;/a&gt;. In this post, we’ll cover the fundamental concepts of website applications and introduce &lt;a href="https://astra.dev/3TSohY8" rel="noopener noreferrer"&gt;DataStax Astra DB&lt;/a&gt; as your free, fast, always-on database based on Apache Cassandra®.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the U.S. we spend almost &lt;a href="https://www.emarketer.com/content/the-majority-of-americans-mobile-time-spent-takes-place-in-apps" rel="noopener noreferrer"&gt;88% of our mobile internet time&lt;/a&gt; buried in apps like Facebook, Instagram, TikTok, and games. With almost a million new apps released each year and &lt;a href="https://www.statista.com/statistics/271644/worldwide-free-and-paid-mobile-app-store-downloads/" rel="noopener noreferrer"&gt;218 billion app downloads&lt;/a&gt; in 2020, learning how to build them is an essential step in any frontend developer’s career.&lt;/p&gt;

&lt;p&gt;So how can you start building apps? As a modern app developer, you’re spoiled for choice with multi-cloud platforms and open-source frameworks that do all the heavy lifting for you. If you learn the basics and leverage the right tools, you can go from developing simple to-do lists to a full-stack Netflix clone — which is precisely what we’ll be covering in our &lt;a href="https://www.youtube.com/playlist?list=PL2g2h-wyI4Sr09jyk19cSwv2Iwcl1V1Fl" rel="noopener noreferrer"&gt;application development workshop series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To put you on the right track, this first workshop is all about building a website application. You’ll learn the fundamentals of web apps, become familiar with popular languages (like JavaScript), then get a pre-coded to-do list app that you’ll learn how to modify and deploy. It’ll take you less than three hours to complete, and all you need is a web browser and an internet connection. Let’s get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  The basics of web app development
&lt;/h2&gt;

&lt;p&gt;A website application (or web app) is software that runs on a remote server and can be accessed using a web browser on any device. Think of apps like Slack, Gmail, Google Docs, and Twitter, for example. Unlike native apps, which are installed directly on a device and designed for specific operating systems, web apps can reuse the same code and adapt their interface to any mobile device, laptop, or tablet.&lt;/p&gt;

&lt;p&gt;While native apps perform much faster, they’re also expensive to develop because you need to learn different languages and frameworks for each platform or device. Web apps, on the other hand, can be “built once and reused forever,” and are vastly simpler to launch, manage and iterate.&lt;/p&gt;

&lt;p&gt;When developing a web app, you’ll typically use the following architecture:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz8kwxuia50orxe8wgyxf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz8kwxuia50orxe8wgyxf.png" alt="Image description" width="800" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Figure 1: Architecture of a typical website application.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Client&lt;/strong&gt; is your device’s web browser, which you use to access the app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt; is what the user interacts with, and is basically a web server that relies on three main technologies: HTML, CSS, and JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt; is what interacts with the webserver and stores all the database drivers, APIs, and microservices that bridge the frontend with the backend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data layer&lt;/strong&gt; is where you store the states of your app. This can be in a filesystem, external storage, document-oriented software, or a database.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A popular database you might already be familiar with is &lt;a href="https://cassandra.apache.org/" rel="noopener noreferrer"&gt;Apache Cassandra®&lt;/a&gt;, which powers high-performing applications for thousands of companies including Hulu, Netflix, Spotify, and Apple. While this free, open-source database is known for its high availability, scalability, and resilience; the downside is that it’s also notoriously complex to set up and manage.&lt;/p&gt;

&lt;p&gt;This complexity is an ongoing theme when working with the data layer. As a developer, you need just four operations to interact with your database: create, read, update, delete. But to execute them, you first have to learn the language for the database you’re using. For example, you’d need Cassandra Query Language (CQL) to interact with a Cassandra database. What’s more, you’d also need to learn how to design the data model (schema) so you can properly format and organize the data stored in your database.&lt;/p&gt;

&lt;p&gt;It’s a steep learning curve for a new app developer, which is why DataStax built &lt;a href="https://astra.dev/3TSohY8" rel="noopener noreferrer"&gt;Astra DB&lt;/a&gt;, the serverless Cassandra-as-a-Service, as part of our mission to connect every developer to the power of Cassandra.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simplify Cassandra app development with Astra DB
&lt;/h2&gt;

&lt;p&gt;Astra DB is the simplest way for developers to back their applications with cloud-native Cassandra, allowing them to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploy modern apps faster without the complexities of installing, managing, or scaling Cassandra.&lt;/li&gt;
&lt;li&gt;Interact with your database using multiple APIs to avoid data modeling.&lt;/li&gt;
&lt;li&gt;Bake in security from the ground up with encrypted data and JSON web token (JWT) based authentication for secure communication with your database.&lt;/li&gt;
&lt;li&gt;Choose whether to deploy your Astra DB on Azure, GCP, or AWS.&lt;/li&gt;
&lt;li&gt;Autoscale database resources are based on traffic and app requirements so you only pay for what you use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a developer, you can &lt;a href="https://astra.dev/3TSohY8" rel="noopener noreferrer"&gt;create an account on Astra DB&lt;/a&gt; for free. You get 3.5 million queries and 40 GB each month, and when you’re ready to scale, you can simply pay as you go.&lt;/p&gt;

&lt;p&gt;Astra DB doesn’t just give you a database, it also gives you a collection of APIs that you can use to interact with your database out of the box. This API layer that sits between your app and your Astra DB is called &lt;a href="https://stargate.io/?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;Stargate&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgtw52sco053y2pe9498r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgtw52sco053y2pe9498r.png" alt="Image description" width="800" height="219"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stargate helps you streamline app development with Cassandra using popular APIs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.ibm.com/cloud/learn/rest-apis" rel="noopener noreferrer"&gt;REST&lt;/a&gt;&lt;/strong&gt; provides a common gateway so you can access your data using a familiar interface through RESTful APIs for any Cassandra database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://jsonapi.org/" rel="noopener noreferrer"&gt;Document (JSON)&lt;/a&gt;&lt;/strong&gt; is a documents API that lets you save and search schemaless JSON documents in Cassandra (with no data modeling needed).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://graphql.org/" rel="noopener noreferrer"&gt;GraphQL&lt;/a&gt;&lt;/strong&gt; is a query language for APIs that lets you insert, query, and change data within the database (without writing in CQL).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this means fewer languages and frameworks for you to learn and a shorter time to launch. Think of AstraDB as your own personal Samwise Gamgee, with all kinds of useful tools in its bag to make your app development journey easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build your first web app with JS, Node.js, and Astra DB
&lt;/h2&gt;

&lt;p&gt;There’s no better exercise to get you started as an app developer than building a to-do list. The concepts and techniques you’ll learn in our first workshop are fundamental to building any web app and will put you on track to creating more advanced apps yourself. So, in this workshop you’ll learn how to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set up a free Astra DB instance&lt;/li&gt;
&lt;li&gt;Run the web-based IDE Gitpod&lt;/li&gt;
&lt;li&gt;Interact with the database using APIs&lt;/li&gt;
&lt;li&gt;Build a to-do list app using React&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You don’t have to install anything and the technologies involved are all open source and free to use. Aside from Astra DB, here’s a quick intro to the other technologies we’ll cover in this first workshop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.gitpod.io/" rel="noopener noreferrer"&gt;Gitpod&lt;/a&gt;&lt;/strong&gt; is a cloud-based integrated development environment (IDE) powered by VS Code that lets you create ready-made dev environments and edit your code directly in your browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://nodejs.org/en/" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt;&lt;/strong&gt; is a runtime environment that executes JavaScript outside of a browser to let you generate dynamic page content and interact with the data in your database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React&lt;/a&gt;&lt;/strong&gt; is a JavaScript library to create interactive user interfaces that easily adapt across most browsers and devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To give you the bigger picture, here’s the architecture we’ll be following to build the to-do list app:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasath7usci7ilcfy6hxg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasath7usci7ilcfy6hxg.png" alt="Image description" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To get started, simply &lt;a href="https://astra.dev/3TSohY8" rel="noopener noreferrer"&gt;sign up for your free Astra DB account&lt;/a&gt;, then head over to the &lt;a href="https://www.youtube.com/watch?v=NzT_w3YHpuI?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;workshop video on YouTube&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For the source code, slides, exercises, and the step-by-step guide go to our &lt;a href="https://github.com/datastaxdevs/appdev-week1-todolist?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;DataStax Developers repo on GitHub&lt;/a&gt;. Lastly, if you get stuck or want to chat with our buzzing community, &lt;a href="https://discord.com/invite/pPjPcZN" rel="noopener noreferrer"&gt;join the conversation on Discord&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When you’ve completed your first app and you’re ready for the next step in your app development journey, dig into our second workshop on how to build a TikTok clone!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Follow the &lt;a href="https://datastax.medium.com/?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;DataStax Tech Blog&lt;/a&gt; for more developer stories. Check out our &lt;a href="https://www.youtube.com/channel/UCqA6zOSMpQ55vvguq4Y0jAg?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;YouTube channel&lt;/a&gt; for tutorials and here for DataStax Developers on &lt;a href="https://twitter.com/DataStaxDevs?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; for the latest news about our developer community.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Resources
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=NzT_w3YHpuI?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;Building your first app with Javascript and NodeJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/datastaxdevs/appdev-week1-todolist?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;DataStax GitHub: Run Your First Frontend Application&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discord.com/invite/pPjPcZN" rel="noopener noreferrer"&gt;Join our Discord: Fellowship of the (Cassandra) Rings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;Astra DB — Managed Apache Cassandra as a Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.datastax.com/blog/2021/05/consolidate-cassandra-modern-apis-and-reduce-time-market-50?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;Consolidate on Cassandra with Modern APIs and Reduce Time to Market by 50%&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.datastax.com/blog/2021/02/turbocharge-app-development-dse-stargate-support-modern-data-apis?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;Turbocharge App Development on DSE with Stargate Support for Modern Data APIs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.datastax.com/blog/apps-astra-nomical-speeds-introducing-sample-app-gallery?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;Apps at Astra-nomical Speeds 🚀: Introducing the Sample App Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/DataStax-Academy/Spring-boot-todo-app?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=ytpromo&amp;amp;utm_term=M1&amp;amp;utm_content=Build_Your_First_App_JS_NodeJS" rel="noopener noreferrer"&gt;Build a Spring Java Microservice with Apache Cassandra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/datastaxdevs/react-basics" rel="noopener noreferrer"&gt;Create a React App from Scratch&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Deploy a TikTok Clone with Node.js, Netlify, and DataStax Astra DB</title>
      <dc:creator>Cédrick Lunven</dc:creator>
      <pubDate>Tue, 06 Sep 2022 23:25:32 +0000</pubDate>
      <link>https://dev.to/datastax/deploy-a-tiktok-clone-with-nodejs-netlify-and-datastax-astra-db-3b7g</link>
      <guid>https://dev.to/datastax/deploy-a-tiktok-clone-with-nodejs-netlify-and-datastax-astra-db-3b7g</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4tm6wosuq88jt4p81ozg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4tm6wosuq88jt4p81ozg.jpeg" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is part two of the &lt;a href="https://www.youtube.com/playlist?list=PL2g2h-wyI4Sr09jyk19cSwv2Iwcl1V1Fl" rel="noopener noreferrer"&gt;DataStax app development workshop series&lt;/a&gt;, where we guide you through fundamental technologies to kickstart your app development portfolio: Node.js, React, Netlify, and JavaScript. The full series is &lt;a href="https://www.youtube.com/playlist?list=PL2g2h-wyI4Sr09jyk19cSwv2Iwcl1V1Fl" rel="noopener noreferrer"&gt;available on YouTube&lt;/a&gt;. In this post, we’ll guide you through the concepts and tools you need to build a TikTok clone backed with &lt;a href="https://astra.dev/3QonjR8" rel="noopener noreferrer"&gt;DataStax Astra DB&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://datastax.medium.com/build-your-first-app-with-javascript-node-js-and-datastax-astra-db-573abc238583" rel="noopener noreferrer"&gt;part one of our app development workshops&lt;/a&gt;, we walked you through the basics of building a web app and introduced you to the technologies you’ll be using throughout the series.&lt;/p&gt;

&lt;p&gt;Now that you’re armed with the best tech stack for building web apps, in this second installment we’ll look at the building &lt;em&gt;and deploying&lt;/em&gt; one of the most popular apps today: TikTok.&lt;/p&gt;

&lt;p&gt;Back in the day, you’d have to hire an entire IT team to develop an app like TikTok. Now all you really need is a handful of technologies that can get you up and running within hours. For this workshop, we’ll be using the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React&lt;/strong&gt; to develop the user interface&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt; as our runtime environment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Astra DB&lt;/strong&gt; as our free, serverless database&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;astrajs/collections&lt;/strong&gt;, which is a library called to interact with a document-oriented database&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Netlify&lt;/strong&gt; to deploy the app across a global content delivery network (CDN)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s a quick breakdown of our TikTok app setup:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2y139o4xt9vl1qcjaa8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2y139o4xt9vl1qcjaa8.png" alt="Image description" width="800" height="635"&gt;&lt;/a&gt;&lt;br&gt;
Figure 1: Diagram of TikTok clone app.&lt;/p&gt;

&lt;p&gt;The clone has already been pre-built using React and JavaScript so you can easily modify and deploy your own TikTok app over a CDN, backed by a cloud-based database. Since we already covered React and Node.js in our previous workshop, let’s take a closer look at the technologies turning the gears and cogs in the backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with Astra DB and Document API
&lt;/h2&gt;

&lt;p&gt;For our TikTok database, we’re using &lt;a href="https://astra.dev/3QonjR8" rel="noopener noreferrer"&gt;DataStax Astra DB&lt;/a&gt;: a cloud-based database that fully manages &lt;a href="https://cassandra.apache.org/" rel="noopener noreferrer"&gt;Apache Cassandra®&lt;/a&gt;, one of the most robust and scalable NoSQL databases around.&lt;/p&gt;

&lt;p&gt;With Astra DB, you can leverage the availability and performance of Cassandra without the complexity of installing, operating, or scaling it. You can also use Astra DB entirely on the free tier. All you have to do is &lt;a href="https://astra.dev/3QonjR8" rel="noopener noreferrer"&gt;sign up for an Astra DB account&lt;/a&gt;, then spin up a fully-featured Cassandra cluster in minutes and start experimenting.&lt;/p&gt;

&lt;p&gt;As a reminder, Astra DB comes bundled with &lt;a href="https://www.datastax.com/products/datastax-astra/apis" rel="noopener noreferrer"&gt;Stargate&lt;/a&gt;, which is a collection of APIs that you can use to easily interact with your data over REST.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffxplifjg778d1jaxpo5v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffxplifjg778d1jaxpo5v.png" alt="Image description" width="800" height="384"&gt;&lt;/a&gt;&lt;br&gt;
Figure 2: Diagram of Astra DB and Stargate.&lt;/p&gt;

&lt;p&gt;One such API, which we’ll be using to interact with JSON documents in this workshop, is the Document API.&lt;/p&gt;

&lt;p&gt;If you remember from &lt;a href="https://datastax.medium.com/build-your-first-app-with-javascript-node-js-and-datastax-astra-db-573abc238583" rel="noopener noreferrer"&gt;part one of our workshop series&lt;/a&gt;, the Document API allows you to save and search schemaless JSON documents in Cassandra without the pain of defining a specific data schema. It essentially abstracts away the complexities of converting JSON documents into tabular form, making it quick to iterate and easy to scale because you can freely store your documents without the restrictions of a schema.&lt;/p&gt;

&lt;p&gt;What’s more, as the Document API is built on Cassandra, you benefit from the inherent robustness and reliability of its distributed infrastructure. And, once your application has settled on a particular format for its data, you can easily migrate it into a defined schema.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying to production with Netlify
&lt;/h2&gt;

&lt;p&gt;To tie it all together, you’ll use &lt;a href="https://www.netlify.com/" rel="noopener noreferrer"&gt;Netlify&lt;/a&gt; to deploy your TikTok clone directly from the GitHub repository. Netlify is a serverless platform that enables developers to quickly build and deploy web apps across their global CDN. This means simpler deployments, built-in redundancy, and pages that load at warp speed.&lt;/p&gt;

&lt;p&gt;To achieve this impressive level of performance, Netlify is based on &lt;a href="http://jamstack.org/" rel="noopener noreferrer"&gt;JamStack&lt;/a&gt;: the new standard architecture for the web. Unlike traditional websites and apps, JamStack neatly separates the frontend pages from the backend apps and databases.&lt;/p&gt;

&lt;p&gt;This frees the frontend from backend servers so pre-rendered content can be deployed directly to a global CDN. In turn, this spares &lt;em&gt;you&lt;/em&gt; from creating or maintaining your own servers and dealing with DevOps. Plus, you can easily enhance and personalize your content through APIs and &lt;a href="https://blog.larsbehrenberg.com/the-definitive-guide-to-netlify-serverless-functions" rel="noopener noreferrer"&gt;serverless functions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To deploy our TikTok clone, here’s how it’ll all tie in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6v0xvlmz940bnuz3x9v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6v0xvlmz940bnuz3x9v.png" alt="Image description" width="800" height="407"&gt;&lt;/a&gt;&lt;br&gt;
Figure 3: TikTok clone architecture using GitHub, Netlify, and Astra DB.&lt;/p&gt;

&lt;p&gt;Netlify will automatically clone the repository into your own, build your site, and deploy it across their CDN. One advantage of both Netlify and Astro DB is that you can deploy to any major cloud provider (AWS, GCP, and Microsoft Azure) without having to create an account with them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set up and deploy a TikTok clone in less than two hours
&lt;/h2&gt;

&lt;p&gt;Now that you understand what’s going on under the hood, you’re ready to get your own TikTok clone up and running. During this second workshop, we’ll hand you a ready-coded sample and show you how to do the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect your free Astra DB database&lt;/li&gt;
&lt;li&gt;Initialize the application using &lt;a href="https://nodejs.dev/learn/the-npx-nodejs-package-runner" rel="noopener noreferrer"&gt;Node Package Execute (NPX)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Define the objects needed and work through the backend&lt;/li&gt;
&lt;li&gt;Deploy your application to production with Netlify&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s the architecture we’ll be guiding you through:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fja103g7vew6hoxvn9zx5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fja103g7vew6hoxvn9zx5.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;br&gt;
Figure 4: TikTok clone app architecture for this DataStax workshop.&lt;/p&gt;

&lt;p&gt;To start, make sure you’ve &lt;a href="https://astra.dev/3QonjR8" rel="noopener noreferrer"&gt;signed up for your free Astra DB account&lt;/a&gt;, then jump into the &lt;a href="https://www.youtube.com/watch?v=yyc4ZtXmAvQ" rel="noopener noreferrer"&gt;workshop video on YouTube&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For the source code, slides, exercises, and the step-by-step guide go to our &lt;a href="https://github.com/datastaxdevs/workshop-social-media-tiktok" rel="noopener noreferrer"&gt;DataStax Developers repo on GitHub&lt;/a&gt;. Lastly, if you get stuck or simply want to chat with our community, &lt;a href="https://discord.com/invite/pPjPcZN" rel="noopener noreferrer"&gt;join the conversation on Discord&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Coming up next, for the grand finale of this workshop series, we’ll be piecing together everything you’ve learned so far and walking you through &lt;a href="https://datastax.medium.com/build-your-first-app-with-javascript-node-js-and-datastax-astra-db-573abc238583" rel="noopener noreferrer"&gt;building a Netflix clone&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Explore more free tutorials on our &lt;a href="https://www.youtube.com/channel/UCqA6zOSMpQ55vvguq4Y0jAg" rel="noopener noreferrer"&gt;DataStax Developers YouTube channel&lt;/a&gt; and &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSfEtzzVauuFpFJWUiepYndqchBpNsaOwm6raPJDsMt9nTvMbw/viewform" rel="noopener noreferrer"&gt;subscribe to our event alert&lt;/a&gt; to get notified about new developer workshops. For exclusive posts on all things data: Cassandra, streaming, Kubernetes, and more; follow &lt;a href="https://datastax.medium.com/" rel="noopener noreferrer"&gt;DataStax on Medium&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=yyc4ZtXmAvQ" rel="noopener noreferrer"&gt;Building a TikTok clone!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/datastaxdevs/appdev-week1-todolist" rel="noopener noreferrer"&gt;DataStax GitHub: Run Your First Frontend Application&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discord.com/invite/pPjPcZN" rel="noopener noreferrer"&gt;Join our Discord: Fellowship of the (Cassandra) Rings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://astra.dev/3QonjR8" rel="noopener noreferrer"&gt;Astra DB — Managed Apache Cassandra as a Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.datastax.com/products/datastax-astra/apis" rel="noopener noreferrer"&gt;Stargate APIs | GraphQL, REST, Document&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.netlify.com/jamstack/" rel="noopener noreferrer"&gt;Welcome to the Jamstack | What, Why, and How of Jamstack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.larsbehrenberg.com/the-definitive-guide-to-netlify-serverless-functions" rel="noopener noreferrer"&gt;The Definitive Guide to Netlify Serverless Functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=IATOicvih5A" rel="noopener noreferrer"&gt;Tutorial: Build a TikTok app in React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://academy.datastax.com/" rel="noopener noreferrer"&gt;DataStax Academy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://datastax.com/dev/certifications" rel="noopener noreferrer"&gt;DataStax Certifications&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Build a crypto application with GraphQL Federation</title>
      <dc:creator>Cédrick Lunven</dc:creator>
      <pubDate>Thu, 30 Jun 2022 16:16:26 +0000</pubDate>
      <link>https://dev.to/datastax/build-a-crypto-application-with-graphql-federation-4421</link>
      <guid>https://dev.to/datastax/build-a-crypto-application-with-graphql-federation-4421</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7tavx9zgqlf1a371pmt1.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7tavx9zgqlf1a371pmt1.jpeg" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post will show you the ropes of GraphQL federation and give you the context you need before embarking on the &lt;a href="https://www.youtube.com/watch?v=T722_t-HTFw" rel="noopener noreferrer"&gt;crypto app workshop&lt;/a&gt; by &lt;a href="https://uk.linkedin.com/in/ania-kubow" rel="noopener noreferrer"&gt;Ania Kubów&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Federating GraphQL is a popular approach for companies with large, distributed architectures where scalability and flexibility are paramount. For example, &lt;a href="https://medium.com/adobetech/graphql-making-sense-of-enterprise-microservices-for-the-ui-46fc8f5a5301" rel="noopener noreferrer"&gt;Adobe uses GraphQL federation&lt;/a&gt; across 40 API endpoints to improve their team’s agility and velocity; meanwhile &lt;a href="https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-1-ae3557c187e2" rel="noopener noreferrer"&gt;Netflix developed a federated GraphQL platform&lt;/a&gt; to quickly and reliably scale their API for their studio ecosystem.&lt;/p&gt;

&lt;p&gt;If you’re already familiar with GraphQL, then learning how to federate data using GraphQL APIs is a good next step.&lt;/p&gt;

&lt;p&gt;In this workshop, Ania will walk you through GraphQL federation and how to use it to build a simple crypto application. In the process, you’ll learn how to create a database using &lt;a href="https://astra.dev/3lXzUyc" rel="noopener noreferrer"&gt;DataStax Astra DB&lt;/a&gt;, interact with it using &lt;a href="https://graphql.org/" rel="noopener noreferrer"&gt;GraphQL&lt;/a&gt;, and federate data from several databases to populate your crypto dashboard.&lt;/p&gt;

&lt;p&gt;There’s no special software to install and we’ll only be using free, open-source technologies, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React&lt;/strong&gt; to develop the crypto app user interface&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Astra DB&lt;/strong&gt; as our free, serverless database&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GraphQL&lt;/strong&gt; to create, read, update, and delete app data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apollo&lt;/strong&gt; to federate data from our databases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s get started.&lt;/p&gt;

&lt;h1&gt;
  
  
  Understanding GraphQL federation
&lt;/h1&gt;

&lt;p&gt;Let’s begin with a quick intro to the query language itself. &lt;a href="https://graphql.org/" rel="noopener noreferrer"&gt;GraphQL&lt;/a&gt; is an open-source query language, originally built by Facebook, that’s used to fetch data from an API into your application.&lt;/p&gt;

&lt;p&gt;With GraphQL, you can hide the complexity of multiple systems (like microservices and third-party APIs) behind a single GraphQL interface. This allows you to fetch data from several sources in just one request, which saves on bandwidth and improves the performance of your app.&lt;/p&gt;

&lt;p&gt;Figure 1: Diagram showing how GraphQL interfaces with multiple services. (&lt;a href="https://www.howtographql.com/basics/3-big-picture/" rel="noopener noreferrer"&gt;Source&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Simply put, a federated architecture brings together multiple schemas from different services and merges them into one unified API endpoint. Although having a single GraphQL API is tricky when it comes to enterprise-scale systems.&lt;/p&gt;

&lt;p&gt;This is where &lt;a href="https://www.apollographql.com/docs/federation/" rel="noopener noreferrer"&gt;Apollo Federation&lt;/a&gt; swoops in. It’s a gateway layer that allows you to easily consolidate multiple GraphQL API services into one so that an enterprise-scale graph can work as a collection of separately maintained GraphQL services. This gives teams the freedom to work on different parts of the graph schema independently. This also makes it faster and easier to scale, manage, and deploy.&lt;/p&gt;

&lt;p&gt;At a high level, Apollo Federation architecture consists of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subgraph services, where each one corresponds to a specific GraphQL schema.&lt;/li&gt;
&lt;li&gt;A gateway that unifies the schemas into a federated graph and handles the queries across the subgraphs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjv6qibz45bh8bjahx43y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjv6qibz45bh8bjahx43y.png" alt="Image description" width="700" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Figure 2: A consolidated GraphQL architecture using Apollo Federation. (&lt;a href="https://www.apollographql.com/docs/federation/enterprise-guide/graphql-consolidation/" rel="noopener noreferrer"&gt;Source&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;In this workshop, we’ll use Apollo Federation to join two databases together and channel their combined output into a crypto app. For the databases, we’ll be using &lt;a href="https://astra.dev/3lXzUyc" rel="noopener noreferrer"&gt;DataStax Astra DB&lt;/a&gt;, which we’ll introduce you to in the next section.&lt;/p&gt;

&lt;h1&gt;
  
  
  Your free database with DataStax Astra DB
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://astra.dev/3lXzUyc" rel="noopener noreferrer"&gt;Astra DB&lt;/a&gt; is a serverless database-as-a-service (DBaaS) that fully manages &lt;a href="https://cassandra.apache.org/" rel="noopener noreferrer"&gt;Apache Cassandra®&lt;/a&gt;. That means you can leverage the high availability and reliability of Cassandra, but spare yourself from the pains of operating and managing it.&lt;/p&gt;

&lt;p&gt;The best part is you can tinker around with Astra DB on an entirely free tier, with up to 80 GB free each month and the freedom to deploy multi-tenant or dedicated databases on AWS, Azure, or GCP. If you need to scale later on, then you can simply pay as you go and only get charged for what you use.&lt;/p&gt;

&lt;p&gt;The second best part is that once you have your hands on Astra DB, you automatically get access to &lt;a href="https://stargate.io/" rel="noopener noreferrer"&gt;Stargate&lt;/a&gt; — an open-source data gateway that makes it easy to query any Cassandra database through REST APIs. One such API is the &lt;a href="https://www.datastax.com/dev/graphql" rel="noopener noreferrer"&gt;Stargate GraphQL API&lt;/a&gt;, which allows you to do the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get the data you need from any Cassandra database using GraphQL types, queries, and mutations.&lt;/li&gt;
&lt;li&gt;Easily and flexibly combine data from multiple services.&lt;/li&gt;
&lt;li&gt;Create new database tables directly via the API.&lt;/li&gt;
&lt;li&gt;Prototype your mutations and queries using the built-in GraphQL Playground servlet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjdwcf13hpw2jymixssuo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjdwcf13hpw2jymixssuo.png" alt="Image description" width="700" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Figure 2: Diagram of Stargate GraphQL API within Astra DB.&lt;/p&gt;

&lt;p&gt;In this workshop, you’ll be using the Stargate GraphQL API as your data source in Astra DB, and Apollo as your gateway to the federated databases.&lt;/p&gt;

&lt;h1&gt;
  
  
  Build a crypto app in just one hour
&lt;/h1&gt;

&lt;p&gt;Now that you have a better idea of GraphQL federation, you’re ready to see it in action as you build your very own crypto app. Here’s what you’ll be doing in this completely free workshop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an Astra DB database&lt;/li&gt;
&lt;li&gt;Create another database with dummy data&lt;/li&gt;
&lt;li&gt;Build a simple crypto dashboard using React&lt;/li&gt;
&lt;li&gt;Federate data from both databases with GraphQL&lt;/li&gt;
&lt;li&gt;View crypto information on your nifty new dashboard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end of this workshop, you’ll know how to federate two databases using GraphQL to populate a crypto app that looks something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faf5h1gyu4lv6akfyptnr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faf5h1gyu4lv6akfyptnr.png" alt="Image description" width="700" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Figure 4: Final interface of the crypto app.&lt;/p&gt;

&lt;p&gt;Ready to get started? &lt;a href="https://astra.dev/3lXzUyc" rel="noopener noreferrer"&gt;Sign up for your free Astra DB account&lt;/a&gt; and then dig into the &lt;a href="https://www.youtube.com/watch?v=T722_t-HTFw" rel="noopener noreferrer"&gt;workshop video on YouTube&lt;/a&gt;. For the source code, head over to Ania’s &lt;a href="https://github.com/kubowania/graphQL-federation-crypto#readme" rel="noopener noreferrer"&gt;GraphQL workshop repo on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Remember, this is a simple crypto app that will teach you the basics of a game-changing approach to GraphQL APIs. Once you’ve mastered this workshop, keep the ball rolling with our blog post on &lt;a href="https://medium.com/building-the-open-data-stack/data-federation-with-the-new-stargate-graphql-schema-first-api-5b4d7f4e27fe" rel="noopener noreferrer"&gt;data federation using Stargate GraphQL&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Explore more free tutorials on our &lt;a href="https://www.youtube.com/c/DataStaxDevs" rel="noopener noreferrer"&gt;DataStax Developers YouTube channel&lt;/a&gt; and &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSfEtzzVauuFpFJWUiepYndqchBpNsaOwm6raPJDsMt9nTvMbw/viewform" rel="noopener noreferrer"&gt;subscribe to our event alert&lt;/a&gt; to get notified about new developer workshops. For exclusive posts on all things data, follow &lt;a href="https://datastax.medium.com/" rel="noopener noreferrer"&gt;DataStax on Medium&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Resources
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=T722_t-HTFw" rel="noopener noreferrer"&gt;Learn GraphQL Federation by building a Crypto App&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/building-the-open-data-stack/deploy-a-netflix-clone-with-graphql-and-datastax-astra-db-a784dd76295c" rel="noopener noreferrer"&gt;Deploy a Netflix Clone with GraphQL and DataStax Astra DB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discord.com/invite/pPjPcZN" rel="noopener noreferrer"&gt;Join our Discord: Fellowship of the (Cassandra) Rings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://astra.dev/3lXzUyc" rel="noopener noreferrer"&gt;Astra DB — Managed Apache Cassandra as a Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.datastax.com/dev/graphql" rel="noopener noreferrer"&gt;Accessing Cassandra with the Stargate GraphQL API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kubowania" rel="noopener noreferrer"&gt;kubowania (Ania Kubów) · GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React — A JavaScript library for building user interfaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.logrocket.com/the-what-when-why-and-how-of-federated-graphql/" rel="noopener noreferrer"&gt;The what, when, why, and how of federated GraphQL&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Bring Streaming to Apache Cassandra with Apache Pulsar</title>
      <dc:creator>Cédrick Lunven</dc:creator>
      <pubDate>Thu, 23 Jun 2022 19:50:41 +0000</pubDate>
      <link>https://dev.to/datastax/bring-streaming-to-apache-cassandra-with-apache-pulsar-22oa</link>
      <guid>https://dev.to/datastax/bring-streaming-to-apache-cassandra-with-apache-pulsar-22oa</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5pt88x9twbivly0zmo3g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5pt88x9twbivly0zmo3g.jpeg" alt="Image description" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Twitch, YouTube, Instagram, Facebook — virtually every major brand nowadays uses live streaming to connect and engage their audience. For enterprises and developers &lt;a href="https://datastax.medium.com/build-your-first-app-with-javascript-node-js-and-datastax-astra-db-573abc238583" rel="noopener noreferrer"&gt;building cloud-native applications&lt;/a&gt;, this growing trend creates a need for streaming technologies that can reliably handle the rush of massive amounts of data, while also being flexible and easy to manage for developers.&lt;/p&gt;

&lt;p&gt;One such technology is &lt;a href="https://pulsar.apache.org/" rel="noopener noreferrer"&gt;Apache Pulsar®&lt;/a&gt; — an open-source, distributed messaging and streaming platform that’s easy to deploy, simple to scale, and packed with developer-friendly APIs. So the next question is: how can you stream from Pulsar to &lt;a href="https://cassandra.apache.org/_/index.html" rel="noopener noreferrer"&gt;Apache Cassandra®&lt;/a&gt;, the powerful NoSQL database designed to support data-heavy applications in the cloud?&lt;/p&gt;

&lt;p&gt;Join our beginner-friendly &lt;a href="https://www.youtube.com/watch?v=nF502PmFi_w" rel="noopener noreferrer"&gt;Pulsar workshop on YouTube&lt;/a&gt; and learn how to connect Pulsar with Cassandra for streaming! In this post, we’ll set the scene with an introduction to Pulsar and guide you through four hands-on exercises where you’ll use these free, cloud-native technologies: Katacoda, Kesque, GitPod, and &lt;a href="https://astra.dev/3POxDD8" rel="noopener noreferrer"&gt;DataStax Astra DB&lt;/a&gt;. Each exercise will also be linked to the step-by-step instructions on the &lt;a href="https://github.com/datastaxdevs/workshop-pulsar/wiki" rel="noopener noreferrer"&gt;DataStax Developers GitHub wiki&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let’s dig in.&lt;/p&gt;

&lt;h1&gt;
  
  
  A quick introduction to Apache Pulsar
&lt;/h1&gt;

&lt;p&gt;For a bit of background, Pulsar was originally developed by Yahoo! and open-sourced in 2016 as a cloud-native, distributed messaging and streaming platform. Today, it’s a top-level &lt;a href="https://www.apache.org/" rel="noopener noreferrer"&gt;Apache Software Foundation&lt;/a&gt; and is used by dozens of companies worldwide, including Comcast, Verizon Media, and (yours truly) DataStax.&lt;/p&gt;

&lt;p&gt;Pulsar is largely favored by enterprises and developers for its superior resilience and lightweight compute process, which makes Pulsar ideal for real-time apps and streaming data between sensors and IoT devices. On a slightly more technical level, anyone using Pulsar will likely gush over the following features:&lt;/p&gt;

&lt;p&gt;Pulsar represents both publish/subscribe messaging &lt;em&gt;and&lt;/em&gt; queuing, where the consumer can subscribe to a topic in three different ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shared subscription&lt;/strong&gt; where Pulsar shares the messages in that topic across all of its subscribed consumers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exclusive subscription&lt;/strong&gt; where every consumer gets their own copy of the data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fail-over subscription&lt;/strong&gt; provides the benefit of an exclusive subscription but if a consumer falls, Pulsar will send the data to a backup.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Designed for multi-tenancy:&lt;/strong&gt; Pulsar was built from the ground up as a multi-tenant system, which allows for a more cost-effective deployment that you can share across multiple teams and across multiple applications. This also applies to the next feature.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seamless geo-replication:&lt;/strong&gt; With built-in &lt;a href="https://pulsar.apache.org/docs/en/administration-geo" rel="noopener noreferrer"&gt;geo-replication&lt;/a&gt;, Pulsar keeps your data safe by easily replicating persistently stored messages across multiple Pulsar clusters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better scaling:&lt;/strong&gt; Pulsar separates compute from storage, which makes it simpler for developers to expand capacity to hundreds of nodes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These features not only make Pulsar a good fit for Cassandra, but also with any cloud-native architecture. Speaking of which, let’s take a look at Pulsar’s unique architecture.&lt;/p&gt;

&lt;h1&gt;
  
  
  Understanding the architecture behind Pulsar
&lt;/h1&gt;

&lt;p&gt;Pulsar is a tiered, distributed system comprised of three components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://bookkeeper.apache.org/" rel="noopener noreferrer"&gt;Apache BookKeeper®&lt;/a&gt;: An open-source storage service that handles persistent storage of messages.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://zookeeper.apache.org/" rel="noopener noreferrer"&gt;Apache ZooKeeper®&lt;/a&gt;: An open-source server that handles coordination tasks between distributed clusters.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pulsar.apache.org/docs/en/concepts-architecture-overview/#brokers" rel="noopener noreferrer"&gt;Brokers&lt;/a&gt;: A stateless component that mainly handles and load balances messages between producers and consumers, as well as store messages in BookKeeper instances (bookies).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fst68taumik71u3720hxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fst68taumik71u3720hxt.png" alt="Image description" width="700" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Figure 1: Architecture of a Pulsar cluster.&lt;/p&gt;

&lt;p&gt;In the upper right of Figure 1, Zookeeper manages the metadata and you can use it to track where the data lives in your storage system. This system is at the bottom of the diagram and is known as BookKeeper. Each BookKeeper node is called a “bookie”. The data is broken into ledgers and segments written to multiple bookies, so no single bookie holds it all.&lt;/p&gt;

&lt;p&gt;In the middle of the diagram, we have the Pulsar brokers themselves, which are what talk to the producers and consumers. These basically take a logical model of topics and messages and turn them into storage that can be assigned to the bookies.&lt;/p&gt;

&lt;p&gt;Now that you have some background, let’s move on to the workshop where you’ll learn how to use Pulsar and get familiar with the free technologies you can use to simplify your streaming setup.&lt;/p&gt;

&lt;h1&gt;
  
  
  The workshop: Four labs. One mission.
&lt;/h1&gt;

&lt;p&gt;In this workshop, we give you four simple “labs” that will show you how to connect Pulsar with Cassandra for streaming. Each lab is explained in detail on our &lt;a href="https://github.com/datastaxdevs/workshop-pulsar" rel="noopener noreferrer"&gt;DataStax Developers GitHub&lt;/a&gt;, and you can also follow along with our &lt;a href="https://www.youtube.com/watch?v=nF502PmFi_w" rel="noopener noreferrer"&gt;YouTube Pulsar workshop video&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There’s nothing to install and no software to pay for, so flex your coding fingers and get a head start with each lab description below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lab 1: Set up Apache Pulsar
&lt;/h2&gt;

&lt;p&gt;In this first lab, you’ll learn how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install Apache Pulsar from the tarball&lt;/li&gt;
&lt;li&gt;Configure infrastructure components in Pulsar&lt;/li&gt;
&lt;li&gt;Create a topic to store messages&lt;/li&gt;
&lt;li&gt;Read and write messages from the topic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To do all this without installing anything, you’ll be leveraging &lt;a href="https://www.katacoda.com/" rel="noopener noreferrer"&gt;Katacoda&lt;/a&gt;, an interactive platform for software engineers to learn and experiment with different technologies.&lt;/p&gt;

&lt;p&gt;Follow the instructions for &lt;a href="https://github.com/datastaxdevs/workshop-pulsar/wiki/LAB1_GettingStarted" rel="noopener noreferrer"&gt;Lab 1 on GitHub&lt;/a&gt; to get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lab 2: Produce and consume messages with Kesque
&lt;/h2&gt;

&lt;p&gt;In this second lab you’ll meet &lt;a href="https://kesque.com/" rel="noopener noreferrer"&gt;Kesque&lt;/a&gt;, a fully managed cloud messaging service powered by Pulsar. As a side note, &lt;a href="https://techcrunch.com/2021/01/27/datastax-acquires-kesque-as-it-gets-into-data-streaming/" rel="noopener noreferrer"&gt;DataStax acquired Kesque&lt;/a&gt; and now includes it as part of &lt;a href="https://www.datastax.com/products/luna-streaming" rel="noopener noreferrer"&gt;Luna Streaming&lt;/a&gt;, which is a completely free, production-ready distribution of Pulsar with handy admin and monitoring tools. We’ll be releasing a revamped version of this workshop using Luna Streaming, so keep an eye on our &lt;a href="https://www.youtube.com/c/DataStaxDevs/featured" rel="noopener noreferrer"&gt;DataStax Developers channel&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;For now, you will simply use Kesque itself to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a topic&lt;/li&gt;
&lt;li&gt;Use the free IDE &lt;a href="https://www.gitpod.io/" rel="noopener noreferrer"&gt;GitPod&lt;/a&gt; to create a producer and consumer in Java&lt;/li&gt;
&lt;li&gt;Create a message schema using the Kesque UI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To give you a better understanding, here’s a simple diagram with how all these technologies will work together.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh8kdrda92zuuu73yb67p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh8kdrda92zuuu73yb67p.png" alt="Image description" width="700" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Figure 2: Diagram showing how we’ll use GitPod and Kesque for Lab 2.&lt;/p&gt;

&lt;p&gt;Go ahead and follow the instructions for &lt;a href="https://github.com/datastaxdevs/workshop-pulsar/wiki/LAB2_Kesque" rel="noopener noreferrer"&gt;Lab 2 on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lab 3: Connect Cassandra with Astra DB
&lt;/h2&gt;

&lt;p&gt;Now it’s time to connect Pulsar to Cassandra and create a database where you can store the messages sent from Pulsar/Kesque. But instead of installing Cassandra and dealing with all the operational complexity that comes with it, you can just use &lt;a href="https://astra.dev/3POxDD8" rel="noopener noreferrer"&gt;Astra DB&lt;/a&gt; and then connect it to Kesque.&lt;/p&gt;

&lt;p&gt;Astra DB is a multi-cloud database-as-a-service (DBaaS) built on Cassandra. It’s the simplest way to benefit from Cassandra’s robust and highly scalable architecture — without the headache of managing the details yourself. So, in this lab you’ll:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://astra.dev/3POxDD8" rel="noopener noreferrer"&gt;Sign up for a free Astra DB account&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Create a database in Astra DB&lt;/li&gt;
&lt;li&gt;Create a table to store the data sent from Pulsar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow the instructions for &lt;a href="https://github.com/datastaxdevs/workshop-pulsar/wiki/LAB3_Astra" rel="noopener noreferrer"&gt;Lab 3 on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lab 4: Stream from Pulsar to Cassandra
&lt;/h2&gt;

&lt;p&gt;In this fourth lab, you’ll finally start streaming. Here’s the big picture of what you’ve set up so far and what’s next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnd96z6z5ui5qgf2bsu8s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnd96z6z5ui5qgf2bsu8s.png" alt="Image description" width="700" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Figure 3: Diagram showing how the topic connects to GitPod and Astra DB.&lt;/p&gt;

&lt;p&gt;In Lab 3, you set up your Astra DB database and created a table to store the data from Pulsar. Now you will connect Pulsar to Cassandra using a &lt;em&gt;sink&lt;/em&gt;, which for the unfamiliar is a class or function designed to receive events and funnel them into external systems.&lt;/p&gt;

&lt;p&gt;So, in this last lab you will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a sink in Pulsar/Kesque&lt;/li&gt;
&lt;li&gt;Connect the sink with Astra DB&lt;/li&gt;
&lt;li&gt;Watch the messages stream into your table in Astra DB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow the instructions for &lt;a href="https://github.com/datastaxdevs/workshop-pulsar/wiki/LAB4_Streaming" rel="noopener noreferrer"&gt;Lab 4 on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Follow the full workshop on YouTube and keep learning
&lt;/h1&gt;

&lt;p&gt;By the end of this workshop, you will have used completely free technologies to successfully stream from Pulsar to Cassandra. Congratulations!&lt;/p&gt;

&lt;p&gt;Remember: if you need more guidance during this workshop, you can follow the whole thing step-by-step with the &lt;a href="https://www.youtube.com/watch?v=nF502PmFi_w" rel="noopener noreferrer"&gt;workshop video on YouTube&lt;/a&gt; (skip to minute 19 for the labs). Lastly, if you get stuck or just want to chat with our generous community, &lt;a href="https://discord.com/invite/pPjPcZN" rel="noopener noreferrer"&gt;join the conversation on Discord&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Explore more free tutorials on our &lt;a href="https://www.youtube.com/c/DataStaxDevs/featured" rel="noopener noreferrer"&gt;DataStax Developers YouTube channel&lt;/a&gt;, and &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSfEtzzVauuFpFJWUiepYndqchBpNsaOwm6raPJDsMt9nTvMbw/viewform" rel="noopener noreferrer"&gt;sign up to our mailing list&lt;/a&gt; to get notified about upcoming community events and workshops. You can also follow &lt;a href="https://datastax.medium.com/" rel="noopener noreferrer"&gt;DataStax on Medium&lt;/a&gt; to keep up with the latest in all things data, Cassandra, Pulsar, streaming, and more.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Resources
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=nF502PmFi_w" rel="noopener noreferrer"&gt;YouTube: Bring Streaming to Cassandra with Apache Pulsar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/datastaxdevs/workshop-pulsar" rel="noopener noreferrer"&gt;GitHub: Workshop Apache Cassandra and Apache Pulsar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.datastax.com/blog/2019/05/7-reasons-we-chose-apache-pulsar-over-apache-kafka" rel="noopener noreferrer"&gt;7 Reasons We Chose Apache Pulsar over Apache Kafka&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://astra.dev/3POxDD8" rel="noopener noreferrer"&gt;DataStax Astra DB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.datastax.com/products/luna-streaming" rel="noopener noreferrer"&gt;DataStax Luna Streaming — Apache Pulsar Distribution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pulsar.apache.org/docs/en/io-overview/" rel="noopener noreferrer"&gt;Pulsar connector overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discord.com/invite/pPjPcZN" rel="noopener noreferrer"&gt;Discord: Fellowship of the (Cassandra) Rings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://auth.cloud.datastax.com/auth/realms/CloudUsers/protocol/saml/clients/absorb" rel="noopener noreferrer"&gt;DataStax Academy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.datastax.com/dev/certifications" rel="noopener noreferrer"&gt;DataStax Certifications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.datastax.com/workshops" rel="noopener noreferrer"&gt;DataStax Workshops&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
  </channel>
</rss>
