Masterclass práctico con SwiftUI, GraphQL y Neo4j AuraDB

Rate this content
Bookmark
Github

Aplica el poder de los grafos al desarrollo de aplicaciones móviles iOS en este masterclass práctico. Exploraremos cómo utilizar la biblioteca Neo4j GraphQL para construir APIs de GraphQL respaldadas por Neo4j AuraDB y cómo integrar GraphQL en una aplicación iOS utilizando SwiftUI y la biblioteca Apollo iOS GraphQL mientras construimos una aplicación móvil de lectura de noticias.


Tabla de contenidos:

- Introducción a Neo4j AuraDB

- Construcción de APIs de GraphQL con la biblioteca Neo4j GraphQL

- Introducción a SwiftUI

- SwiftUI + GraphQL


Requisitos previos

Para seguir el masterclass, los asistentes necesitarán una computadora Mac con una versión reciente de Xcode instalada. Será útil tener cierta familiaridad con Swift y el desarrollo de aplicaciones iOS, aunque no es necesario.

This workshop has been presented at GraphQL Galaxy 2022, check out the latest edition of this Tech Conference.

FAQ

Neo4j es una base de datos de grafos que se utiliza para modelar y trabajar con datos en forma de grafo, compuesto por nodos y relaciones. Es útil para visualizar y manipular estructuras de datos complejas en diversos proyectos de desarrollo.

GraphQL es un lenguaje de consulta de API que permite a los desarrolladores describir los datos que necesitan exactamente, facilitando las interacciones eficientes con las APIs. Se integra bien con Neo4j para aprovechar la estructura de grafos en consultas de datos.

SwiftUI es un marco de interfaz de usuario de Apple que permite la construcción de interfaces de usuario de forma declarativa para iOS, macOS y tvOS. Facilita la creación de vistas con datos dinámicos y reactivos, mejorando la eficiencia del desarrollo de aplicaciones nativas.

Se puede utilizar GraphQL junto con SwiftUI mediante la biblioteca Apollo iOS para realizar consultas y manejar datos en una aplicación iOS. Esto permite solicitar y manejar datos de forma eficiente y actualizar las interfaces de usuario de SwiftUI según los datos cambian.

Apollo iOS es utilizado para integrar GraphQL en aplicaciones iOS, facilitando la gestión de datos y la integración con APIs GraphQL. Ofrece funciones como caché y generación de código, optimizando las operaciones de datos y la sincronización con la interfaz de usuario de SwiftUI.

La biblioteca Neo4j GraphQL permite construir APIs de GraphQL respaldadas por Neo4j, simplificando la creación de servidores GraphQL que interactúan directamente con la base de datos de grafos. Automatiza la generación de consultas y maneja la complejidad de las operaciones de datos.

William Lyon
William Lyon
156 min
07 Dec, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

El masterclass de hoy se centró en la construcción de aplicaciones nativas de iOS utilizando SwiftUI y GraphQL, con una base de datos impulsada por Neo4j. La biblioteca Neo4j GraphQL reduce el código boilerplate y ofrece ventajas de rendimiento. SwiftUI permite construir interfaces de usuario declarativas e incluye una funcionalidad de vista previa. Cypher y GraphQL se utilizan para consultar e interactuar con datos de gráficos, siendo Cypher más enfocado en bases de datos de gráficos y GraphQL más versátil. El masterclass también cubrió temas como la construcción de una API de GraphQL, la configuración de la biblioteca Neo4j GraphQL y el uso de Apollo iOS para obtener datos de GraphQL en aplicaciones iOS.

1. Introducción a Neo4j, GraphQL y SwiftUI

Short description:

Trabajo para Neo4j, una compañía de bases de datos de código abierto. Hoy nos centraremos en GraphQL y en la construcción de aplicaciones nativas de iOS utilizando SwiftUI. Utilizaremos la biblioteca Neo4j GraphQL y la biblioteca Apollo iOS. Xcode en un Mac es el único entorno de desarrollo local necesario.

Así que, un poco sobre mí. Trabajo para una compañía de bases de datos de código abierto llamada Neo4j. Neo4j es una base de datos de grafos, hablaremos de lo que eso significa en un minuto. Trabajo en el equipo de relaciones con desarrolladores. En gran medida, mi trabajo consiste en ayudar a los desarrolladores a construir aplicaciones con Neo4j y otras tecnologías. Es realmente importante entender cómo encaja la base de datos con diferentes tecnologías, diferentes componentes de tu architecture. Así que esa es una gran parte de mi trabajo, contextualizar la pieza de la base de datos para diferentes comunidades tecnológicas. GraphQL es una de esas tecnologías, que es el enfoque de nuestro taller hoy. También escribí un libro recientemente publicado por Manning llamado `Aplicaciones gráficas de pila completa`. Este libro está disponible de forma gratuita o la versión de libro electrónico está patrocinada por Neo4j, así que dejaré un enlace a eso. Ahora te llevaré a un formulario si estás interesado en descargar el libro. El libro se centra en el uso de GraphQL en una architecture de pila completa con react en el front end. Así que hoy vamos a ver iOS nativo con Swift UI como el front end del cliente para nuestra aplicación. Si estás interesado en una architecture similar pero utilizando react y vemos diferentes servicios en la cloud como ¿cómo desplegar en Netlify? ¿Cómo usar Op Zero? Así que aquí tienes un esquema aproximado de lo que vamos a hacer hoy. Así que tendremos, supongo, aproximadamente cuatro secciones aquí. Una es que vamos a ver Neo4j y Aura DB, que es un servicio en la nube de Neo4j. Si estuviste en el taller del martes, también usamos Aura. Así que vamos a usar la capa gratuita de Aura, lo cual es bueno porque podemos crear una database que sea privada para nosotros y que no tengamos que poner una tarjeta de crédito ni incurrir en ningún costo. Así que eso es realmente bueno para proyectos de hobby. Tenemos algo así donde no queremos que la database desaparezca, pero simplemente la usamos menos. Eso es lo que vamos a hacer para la capa de la database. Luego vamos a hablar de la construcción de APIs gráficas. Así que construir servidores gráficos y específicamente, vamos a utilizar una integración de GraphQL y database llamada biblioteca Neo4j GraphQL que nos ayudará a aprovisionar nuestra API de GraphQL sin tener que escribir mucho código repetitivo, generar consultas a la database, ese tipo de cosas. Luego vamos a echar un vistazo a SwiftUI. Así que construir aplicaciones nativas de iOS utilizando Swift. Y veremos cómo integrar GraphQL y SwiftUI. Vamos a utilizar la biblioteca Apollo iOS para SwiftUI, que permite, o para Swift, más bien, no específicamente para SwiftUI. SwiftUI es el componente de interfaz de usuario disponible con Swift. Hay algunas formas diferentes de construir interfaces de usuario para iOS. SwiftUI es similar, conceptualmente similar, creo, a muchos frameworks web como React. Así que si estás familiarizado con cosas como React, hay algunos conceptos que se transfieren fácilmente a SwiftUI. Y los únicos entornos de desarrollo local que necesitas tener configurados son Xcode en un Mac. Si no tienes esa configuración, está bien. Puedes simplemente ver mientras hacemos el ejercicio al final. La parte de SwiftUI es la última pieza que vamos a hacer. Para las otras piezas, para usar Neo4j, vamos a utilizar el servicio en la nube AURA y no hay nada que descargar o instalar para eso. Y luego, para construir la pieza de la API de GraphQL, vamos a utilizar CodeSandbox, que es un entorno de desarrollo alojado, por lo que no necesitamos configurar nada localmente para eso. Pero luego hay un repositorio de GitHub para la pieza de SwiftUI de Xcode que tiene simplemente una componente de inicio.

2. Aplicación de lector de noticias con Neo4j, GraphQL y SwiftUI

Short description:

Esto es lo que vamos a construir hoy: una aplicación de iOS para leer noticias utilizando Neo4j como nuestra base de datos y GraphQL como la capa entre nuestra aplicación cliente de iOS y la base de datos. Neo4j es una base de datos de grafos, lo que significa que el modelo de datos es un grafo compuesto por nodos y relaciones. Utilizaremos el lenguaje de consulta Cypher para trabajar con los datos. GraphQL es un lenguaje de consulta de API con un sistema de tipos estricto, y lo utilizaremos para construir nuestra API de GraphQL. La biblioteca Neo4j GraphQL es una biblioteca de JavaScript enfocada en la construcción de API de GraphQL respaldadas por Neo4j. Reduce el código repetitivo y ofrece ventajas de rendimiento. Y finalmente, utilizaremos SwiftUI para construir la aplicación de iOS.

¡Genial! Aquí tienes algunos enlaces a varios recursos que serán útiles mientras avanzamos hoy. Las diapositivas, por supuesto, y un enlace al repositorio de GitHub para el proyecto de Xcode, documentación para la biblioteca de GraphQL de Neo4j, así como una página de descripción general para eso. Hablaremos mucho más sobre eso.

Y luego el tutorial de GraphQL de Apollo iOS es un recurso útil que muestra cómo puedes instalar y configurar el paquete de GraphQL de Apollo iOS en un proyecto de Xcode. Y luego la documentación para desarrolladores de SwiftUI es un buen recurso también.

Entonces esto es lo que vamos a construir hoy. Es una aplicación bastante simple. Así que no nos vamos a enfocar demasiado en muchos de los detalles de SwiftUI para que todo se vea muy bien. Realmente creo que el enfoque de lo que queremos hacer hoy es hablar más sobre cómo encajan las piezas en este tipo de arquitectura.

Lo que vamos a construir es una aplicación de iOS para leer noticias. Así que vamos a obtener artículos de noticias y mostrárselos al usuario y luego pensar un poco en cómo podemos agregar características de personalización a nuestra aplicación de iOS. ¿Cómo podemos mostrar noticias relevantes para los usuarios ya sea por ubicación o encontrar artículos similares que puedan interesar a un usuario. Y vamos a hacer esto utilizando Neo4j como nuestra base de datos. Por lo tanto, vamos a modelar y trabajar con estos datos como un grafo. Cuando hablamos de un grafo, nos referimos a una estructura de datos compuesta por nodos. Estas son las entidades y las relaciones que conectan los nodos. Y vamos a hacer esto con GraphQL.

Entonces, GraphQL va a ser la capa que se encuentra entre nuestra aplicación cliente de iOS y nuestra base de datos. Vamos a construir una API de GraphQL. Una cosa que notarás, cuando hablamos de usar un modelo de datos de grafo en la base de datos, eso es muy similar al modelo de grafo que usamos en GraphQL. Hablaremos un poco más sobre eso.

Genial. Veamos qué es exactamente Neo4j. Así que dije antes que Neo4j es una base de datos de grafos. Eso significa que a diferencia de las bases de datos relacionales que usan tablas o las bases de datos de documentos que usan un documento como un documento JSON, el modelo de datos en las bases de datos de grafos como Neo4j es un grafo. Entonces, los nodos son las entidades, las relaciones conectan los nodos. Usamos un lenguaje de consulta llamado Cypher, que es algo así como SQL pero para grafos es una buena forma de pensarlo. Hay un ejemplo de Cypher aquí en la parte superior derecha. Puedes ver que estamos en la primera línea dibujando esta representación de arte ASCII del patrón de grafo que estamos buscando en este conjunto de datos.

La primera parte aquí, match, que es buscar algún patrón que exista en la base de datos. Estos paréntesis abiertos y cerrados están dibujando una especie de círculo de nodo alrededor de una dirección. Estamos diciendo encontrar donde existe este patrón. Queremos nodos de dirección que tengan una relación de dirección registrada. Un nodo de promesa aquí, estamos poniendo corchetes con la flecha. Eso conecta nodos, en este caso, conectando un nodo de dirección a un nodo de oficial. Y luego estamos atravesando desde ese nodo de oficial para encontrar nodos de entidad. Entonces esta consulta dice encontrar direcciones en Nueva York, encontrar los oficiales que están conectados a esas direcciones, y luego encontrar las entidades conectadas a esos oficiales con una dirección en Nueva York. Y esta es una pregunta del conjunto de datos de los Papeles de Panamá, que fue un proyecto de periodismo de investigación hace unos años, que estaba utilizando Neo4j para dar sentido a los registros corporativos offshore para tratar de encontrar cosas interesantes sobre personas que ocultan activos en compañías offshore, lo cual es un conjunto de datos divertido para ver. Es un conjunto de datos públicos. En el sandbox de Neo4j, genial.

Entonces hablemos de las diferentes tecnologías que vamos a utilizar hoy. Para que estemos al menos en la misma página sobre al menos lo que son, algunos de los beneficios, y así sucesivamente. Hablamos de Neo4j. GraphQL es la siguiente pieza. Creo que muchas personas aquí en la conferencia de esta semana han aprendido mucho sobre GraphQL si no estabas familiarizado con GraphQL antes. Pero básicamente, GraphQL es un lenguaje de consulta de API y una forma de construir aplicaciones de API, por lo que servidores de API. Con GraphQL, tenemos un sistema de tipos muy estricto, por lo que describimos los datos disponibles en la API. Tenemos tipos, los tipos tienen campos y conocemos el tipo de datos de cada uno de esos campos.

El ejemplo aquí es que tenemos un tipo de proyecto, tenemos campos como nombre, lema y colaboradores. El nombre y el lema son cadenas, los colaboradores son lo que se llama un campo de objeto. Específicamente, este es un campo de matriz de objetos. Entonces este proyecto tiene uno o más usuarios conectados a él. Y aquí es donde entra la parte de Grafo de GraphQL. Los tipos pueden referirse a otros tipos. Pensamos en esto como un campo de relación que conecta el proyecto y uno o más usuarios. Entonces esa es la parte de Grafo de GraphQL. Luego, en el momento de la consulta, el cliente solicita básicamente un recorrido a través de este grafo de datos en el formulario de lo que se llama un conjunto de selección. Entonces aquí estamos buscando solo un proyecto y trayendo de vuelta el lema, pero podríamos atravesar a los colaboradores también y traer información sobre los colaboradores. Esto es bueno para el cliente porque los datos que se devuelven coinciden exactamente con el conjunto de selección de la consulta o la operación de mutación. Por lo tanto, tenemos datos muy predecibles con los que trabajamos cuando usamos GraphQL.

Para facilitar la construcción de API de GraphQL al trabajar con bases de datos, realmente hay un montón, supongo, de integraciones de GraphQL de bases de datos por ahí, y vemos esto en el mundo de SQL. También lo vemos en el mundo de las bases de datos de grafos. Y una de esas es la biblioteca de GraphQL de Neo4j. Por lo tanto, esta es una biblioteca de JavaScript enfocada en la construcción de API de GraphQL respaldadas por Neo4j. Y la idea aquí es que podemos usar definiciones de tipo de GraphQL para definir el modelo de datos para la API, la API de GraphQL, pero también para impulsar nuestra base de datos. Y esto es realmente bueno porque reduce mucho el código repetitivo de obtención de datos que terminamos escribiendo cuando estamos construyendo servidores de GraphQL. También tiene muchas ventajas de rendimiento porque podemos generar una única consulta de base de datos para cualquier solicitud de GraphQL arbitraria. Pero también tenemos algunas características realmente interesantes para cosas como agregar lógica personalizada utilizando el lenguaje de consulta Cypher del que hablamos hace un minuto, características para agregar reglas de autorización en nuestro esquema de GraphQL. Por lo tanto, es una biblioteca muy potente para construir API de GraphQL. Y luego SwiftUI.

Watch more workshops on topic

Construir con SvelteKit y GraphQL
GraphQL Galaxy 2021GraphQL Galaxy 2021
140 min
Construir con SvelteKit y GraphQL
Top Content
Featured WorkshopFree
Scott Spence
Scott Spence
¿Alguna vez has pensado en construir algo que no requiera mucho código de plantilla con un tamaño de paquete pequeño? En esta masterclass, Scott Spence irá desde el hola mundo hasta cubrir el enrutamiento y el uso de endpoints en SvelteKit. Configurarás una API de GraphQL en el backend y luego usarás consultas de GraphQL con SvelteKit para mostrar los datos de la API de GraphQL. Construirás un proyecto rápido y seguro que utiliza las características de SvelteKit, y luego lo desplegarás como un sitio completamente estático. Este curso es para los curiosos de Svelte que no han tenido una experiencia extensa con SvelteKit y quieren una comprensión más profunda de cómo usarlo en aplicaciones prácticas.

Tabla de contenidos:
- Inicio e introducción a Svelte
- Inicializar el proyecto frontend
- Recorrido por el proyecto esqueleto de SvelteKit
- Configurar el proyecto backend
- Consultar datos con GraphQL
- Recuperación de datos en el frontend con GraphQL
- Estilización
- Directivas de Svelte
- Enrutamiento en SvelteKit
- Endpoints en SvelteKit
- Despliegue en Netlify
- Navegación
- Mutaciones en GraphCMS
- Envío de mutaciones GraphQL a través de SvelteKit
- Preguntas y respuestas
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
React Advanced Conference 2022React Advanced Conference 2022
95 min
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
Featured WorkshopFree
Sabin Adams
Sabin Adams
En este masterclass, obtendrás una visión de primera mano de lo que es la seguridad de tipo de extremo a extremo y por qué es importante. Para lograr esto, construirás una API de GraphQL utilizando herramientas modernas y relevantes que serán consumidas por un cliente de React.
Prerrequisitos: - Node.js instalado en tu máquina (12.2.X / 14.X)- Se recomienda (pero no es obligatorio) utilizar VS Code para las tareas prácticas- Un IDE instalado (se recomienda VSCode)- (Bueno tener) *Un conocimiento básico de Node.js, React y TypeScript
GraphQL para Desarrolladores de React
GraphQL Galaxy 2022GraphQL Galaxy 2022
112 min
GraphQL para Desarrolladores de React
Featured Workshop
Roy Derks
Roy Derks
Hay muchas ventajas en utilizar GraphQL como fuente de datos para el desarrollo frontend, en comparación con las API REST. Nosotros, los desarrolladores, por ejemplo, necesitamos escribir mucho código imperativo para recuperar datos y mostrarlos en nuestras aplicaciones y manejar el estado. Con GraphQL, no solo puedes reducir la cantidad de código necesario para la obtención de datos y la gestión del estado, sino que también obtendrás una mayor flexibilidad, mejor rendimiento y, sobre todo, una mejor experiencia de desarrollo. En este masterclass aprenderás cómo GraphQL puede mejorar tu trabajo como desarrollador frontend y cómo manejar GraphQL en tu aplicación frontend de React.
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
WorkshopFree
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.
Modelado de Bases de Datos Relacionales para GraphQL
GraphQL Galaxy 2020GraphQL Galaxy 2020
106 min
Modelado de Bases de Datos Relacionales para GraphQL
Top Content
WorkshopFree
Adron Hall
Adron Hall
En esta masterclass profundizaremos en el modelado de datos. Comenzaremos con una discusión sobre varios tipos de bases de datos y cómo se mapean a GraphQL. Una vez que se haya establecido esa base, el enfoque se desplazará a tipos específicos de bases de datos y cómo construir modelos de datos que funcionen mejor para GraphQL en varios escenarios.
Índice de contenidosParte 1 - Hora 1      a. Modelado de Datos de Bases de Datos Relacionales      b. Comparando Bases de Datos Relacionales y NoSQL      c. GraphQL con la Base de Datos en menteParte 2 - Hora 2      a. Diseño de Modelos de Datos Relacionales      b. Relación, Construcción de Tablas Multijoin      c. Complejidades de Consulta de Modelado de Datos Relacionales y GraphQL
Prerrequisitos      a. Herramienta de modelado de datos. El formador utilizará dbdiagram      b. Postgres, aunque no es necesario instalar esto localmente, ya que estaré utilizando una imagen de Dicker de Postgres, de Docker Hub para todos los ejemplos      c. Hasura

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Vue.js London Live 2021Vue.js London Live 2021
24 min
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Top Content
This Talk discusses handling local state in software development, particularly when dealing with asynchronous behavior and API requests. It explores the challenges of managing global state and the need for actions when handling server data. The Talk also highlights the issue of fetching data not in Vuex and the challenges of keeping data up-to-date in Vuex. It mentions alternative tools like Apollo Client and React Query for handling local state. The Talk concludes with a discussion on GitLab going public and the celebration that followed.
Baterías Incluidas Reimaginadas - El Resurgimiento de GraphQL Yoga
GraphQL Galaxy 2021GraphQL Galaxy 2021
33 min
Baterías Incluidas Reimaginadas - El Resurgimiento de GraphQL Yoga
Envelope is a powerful GraphQL plugin system that simplifies server development and allows for powerful plugin integration. It provides conformity for large corporations with multiple GraphQL servers and can be used with various frameworks. Envelope acts as the Babel of GraphQL, allowing the use of non-spec features. The Guild offers GraphQL Hive, a service similar to Apollo Studio, and encourages collaboration with other frameworks and languages.
Aplicaciones sólidas de React y GraphQL para personas con prisa
GraphQL Galaxy 2022GraphQL Galaxy 2022
29 min
Aplicaciones sólidas de React y GraphQL para personas con prisa
The Talk discusses the challenges and advancements in using GraphQL and React together. It introduces RedwoodJS, a framework that simplifies frontend-backend integration and provides features like code generation, scaffolding, and authentication. The Talk demonstrates how to set up a Redwood project, generate layouts and models, and perform CRUD operations. Redwood automates many GraphQL parts and provides an easy way for developers to get started with GraphQL. It also highlights the benefits of Redwood and suggests checking out RedwoodJS.com for more information.
Adoptando GraphQL en una Empresa
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
Adoptando GraphQL en una Empresa
Today's Talk is about adopting GraphQL in an enterprise. It discusses the challenges of using REST APIs and the benefits of GraphQL. The Talk explores different approaches to adopting GraphQL, including coexistence with REST APIs. It emphasizes the power of GraphQL and provides tips for successful adoption. Overall, the Talk highlights the advantages of GraphQL in terms of efficiency, collaboration, and control over APIs.
Deja paso a los resolvers: un nuevo enfoque para la ejecución de GraphQL
GraphQL Galaxy 2022GraphQL Galaxy 2022
16 min
Deja paso a los resolvers: un nuevo enfoque para la ejecución de GraphQL
GraphQL has made a huge impact in the way we build client applications, websites, and mobile apps. Despite the dominance of resolvers, the GraphQL specification does not mandate their use. Introducing Graphast, a new project that compiles GraphQL operations into execution and output plans, providing advanced optimizations. In GraphFast, instead of resolvers, we have plan resolvers that deal with future data. Graphfast plan resolvers are short and efficient, supporting all features of modern GraphQL.