Scale By the Bay Scale By the Bay


Wednesday, October 27, 2021

Workshop: Exposing an HTTP API using Scala3 (Trainer: Adam Warski)

Trainer: Adam Warski

It's about time to leverage the new features available in Scala3! A number of libraries have been updated, making it possible to write fully-functional applications using the latest Scala version.

We'll create a basic application from scratch, exposing an HTTP API, using the following Scala3 features:
* enums to define data structures
* opaque types for even more type-safety
* typeclass derivation using the `derives` keyword
* extension methods
* new braceless syntax

The following Scala libraries will be involved:
* tapir for describing web endpoints
* http4s as the HTTP server implementation
* cats-effect to control effects and for asynchronous programming

If you've been using Scala 2 before, or if you are completely new to Scala - come and see how functional programmings works our in practice! No prior Scala experience is required.

*A starting repository and setup instructions will be provided for the attendees before the workshop.*

Workshop: Build a Production-ready Data Access Layer with GraphQL and Hasura (​Speaker: Jesse Martin)

Speaker: Jesse Martin

In this live, hands-on workshop, we will introduce the concept of a data mesh, data federation with GraphQL and how to aggregate different APIs into a unified GraphQL layer with Hasura.

We will make use of database connections, external GraphQL APIs, REST APIs and establish relationships between them to create a powerful and secure API that can be consumed by any client.

It will cover:

  • An introduction to GraphQL and the concept of the Data Mesh
  • How to set up a GraphQL API using Hasura
  • How to join across multiple data sources and APIs
  • How to add use Hasura’s auth system to create roles and restrict access to data
  • How to connect the GraphQL API to a frontend client

We will be using Hasura Cloud to create the backend, which is a hosted platform. If you’d like to use the open-source version of Hasura, you need to have docker installed on your machine with a version including docker compose.