Videos
Functional Programmingβ
- FP to the Max by John De Goes (July 2018)
- FP to the Min by John De Goes (July 2020)
Tour of ZIOβ
- The ZIO of the Future by John De Goes (May 2021)
- A Tour of ZIO by John De Goes (January 2020)
ZIO Coreβ
- The Death of Tagless Final by John De Goes (February 2019)
- Upgrade Your Future by John De Goes (September 2019)
- One Monad to Rule Them All by John De Goes (August 2019)
- Functional Concurrency in Scala with ZIO by Itamar Ravid (June 2019)
- Thinking Functionally by John De Goes (March 2019)
- ZIO: Next-Generation Effects in Scala by John De Goes (October 2018)
- Functional Effects in ZIO by Wiem Zine El Abidine
- ZIO WORLD - Blocking by Adam Fraser (March 2021) β Adam Fraser presented his work to make ZIO faster with blocking code, showing the tremendous (unbelievable) performance improvements possible with batch-mode blocking; part of ongoing work to make ZIO better at blocking workloads.
ZIO Runtime Systemβ
- ZIO WORLD - ZIO Runtime System by John A. De Goes (March 2021) β John A. De Goes presented his work on the runtime system for ZIO 2.0, which involves a significant rewrite and simplification of the core execution model, resulting in what will be ZIO's best performance to date; benchmarks show nearly universally faster performance compared to CE3.
Error Managementβ
- Error Management: Future vs ZIO by John De Goes and Kai (May 2019), slide
- Systematic error management in application - We ported Rudder to ZIO: video in French, slides in English by François Armand (Scala.io, October 2019)
ZIO Service Patternβ
- ZLayers by example by Wiem Zine El Abidine (December 2020)
- ZIO inception: Journey through layers and intersection types by Vladimir Pavkin (July 2020)
- ZIO WORLD - ZLayer by Kit Langton (March 2021) β In this presentation, Kit Langton demonstrated a significant simplification of the service pattern that makes it familiar to OOP programmers, & showed how ZIO 2.0 will auto-wire ZLayers & guide users with rich & actionable error messages.
ZIO Scheduleβ
- ZIO Schedule: Conquering Flakiness and Recurrence with Pure Functional Programming by John De Goes (October 2018)
ZIO Concurrency Primitivesβ
- Atomically: Delete Your Actors by John De Goes and Wiem Zine El Abidine (April 2019)
- ZIO Queue by Wiem Zine El Abidine (January 2019)
- ZIO Queue: A new Queue for a new Era by John De Goes (September 2018)
- ZIO WORLD - Hub by Adam Fraser (March 2020) β In this presentation, Adam Fraser introduced a hyper-fast async concurrent hub and showed how ZIO Queue and ZIO Hub are radically faster than alternatives.
ZIO STMβ
- Declarative Concurrency with ZIO STM by Dejan Mijic (June 2020)
ZIO Test and Debuggingβ
- 0 to 100 with ZIO Test by Adam Fraser
- ZIO WORLD - Execution Tracing by Rob Walsh (March 2021) β Rob Walsh then presented his work taking ZIO's execution tracing to the next level, which will improve the quality of tracing, as well as make it virtually "cost-free", which is effectively the same as more than doubling the perf of ZIO applications today.
- Using Aspects To Transform Your Code With ZIO Environment by Adam Fraser (September 2020)
- Zymposium β Smart Assertions by Adam Fraser and Kit Langton (August 2021) β This week, Adam and Kit will demo and explore the inner workings of zio-test's new Smart Assertions. This new test syntax allows you to write simple, straightforward, boolean expressionsβall without losing the human-readable, debuggable error messages from other assertion DSLs. As we look at the implementation, we'll discuss the delicate fusion of principled combinator DSLs with hacky macros.
Migration and Interoperabilityβ
- Functional Legacy - How to Incorporate ZIO In Your Legacy Services by Natan Silnitsky (March 2020) β You want to introduce ZIO to your existing Scala codebase? Great Idea! It will make your code more efficient, readable, composable, and safe. For the past year, Natan Silnitsky has done this at Wix and has learned a lot about how to do it right. In this talk, Natan will show you how to successfully use ZIO in your legacy service using real-life code examples. You will learn key tips and takeaways including how and when to execute the ZIO runtime; how/when to introduce ZLayers into your codebase; how to make your existing APIs interop with ZIO; and how to have more flexibility on ZManaged resource shutdown. When you're done attending the presentation, you'll be able to introduce ZIO into your existing Scala code base with confidence!
ZIO Streamsβ
- Modern Data Driven Applications with ZIO Streams by Itamar Ravid (December 2019)
- ZIO Stream: Rebirth by John De Goes and Itamar Ravid (November 2018)
- The Joys of (Z)Streams by Itamar Ravid
- A Tour of ZIO Streams by Itamar Ravid (June 2020) β Watch this video for a brief tour of ZIO Streams from its author, Itamar Ravid. ZIO Streams is a Scala library for creating concurrent, asynchronous stream processing applications, based on the cutting edge functional effect system ZIO.
- ZIO WORLD - ZIO Streams by Itamar Ravid (March 2020) β In this presentation, Itamar Ravid introduces a radical new basis for ZIO 2.0 Streams, inspired by the work of Michael Snoyman, which unifies streams and sinks & offers next-level performance for streaming apps on the JVM.
ZIO Librariesβ
- What Happens In ZIO Stays in ZIO by Willem Vermeer β ZIO has excellent interoperability with http4s, Cats, Akka libraries, and more, and there are a number of posts and videos that help developers use ZIO with these great libraries. Yet, the question remains: can you develop a web service using ZIO libraries alone? In this talk, we'll explore the answer to this question directly. We'll start by creating an SMTP server using ZIO NIO, and then we'll add a frontend based on ZIO gRPC and Scala.js. Along the way, we'll leverage ZIO Config to externalize the configuration, as well as the ZLayer mechanism for dependency injection. Maybe we'll throw ZIO JSON into the mix, and at the end, we'll take a step back to appreciate how much is really possible gluing those ZIO components together! Finally, we'll conclude by discussing what's still left to be done to make ZIO a full-fledged competitor in the area of full-stack web service development
ZIO CLIβ
- 10 Minute Command-Line Apps With ZIO CLI by Aiswarya Prakasan (December 2020) β Command-line applications are pervasive, relied upon by developers,third-parties, and IT staff. While itβs easy to develop a basic command-line application, building one that features rich help, forgiving parsing, bulletproof validation, shell completions, and a clean and beautiful appearance is quite challenging. In this talk, Aiswarya Prakasan, a contributor to ZIO CLI, will lead you on a journey to building powerful command-line applications in Scala. Through the power of composition and strong types, you will discover how to build type-safe command-line applications in just a few simple lines of code, which give you rich features of command-line applications like git.
ZIO Flowβ
- ZIO WORLD - ZIO FLOW by Aiswarya Prakasan (March 2020) - Aiswarya Prakasan introducing ZIO Flow the new open-source platform will help developers orchestrate microservices for mission-critical code. With a type-safe and compositional design, ZIO Flow will make it easier for developers to create and test robust workflows, which statefully interact with microservices, databases, and human agents, and which survive flakiness, software updates, and even data center failures.
- Zymposium - ZIO Flow (August 2021) β This Friday Adam and Kit will be learning about ZIO Flow, a project that aims to do for distributed programming what ZIO has done for concurrent programming, with special guest Ash. Ash will explain how ZIO Flow lets us execute persistent, distributed, fault-tolerant computations. Then we'll be live coding building a small application in ZIO Flow with her.
ZIO SQLβ
- ZIO WORLD - ZIO SQL by Jakub Czuchnowski (March 2020) β Jakub Czuchnowski summarized the latest work in ZIO SQL, demonstrating type-inferred, type-safe queries with the full-range of SQL features, including database-specific functions, with working SELECT/DELETE/UPDATE for Postgres.
ZIO Webβ
- ZIO WORLD - ZIO WEB by Piotr Golebiewski (March 2020) β Piotr Golebiewski toured ZIO Web, reaching the milestone of "hello world", with working server and client generation for the HTTP protocol.
Use Casesβ
- Search Hacker News with ZIO with Scala, ZIO, Sttp and magic β A practical look at building a ZIO program. + Source Code by Justin Heyes-Jones (April 2021)
- ML Powered Apps with ZIO Scala by Aris Vlasakakis (August 2020)
- Production-grade Microservices with ZIO by Itamar Ravid (April 2021) β These days, there are all sorts of boxes to check when deploying production-grade microservices. Our applications must be (reasonably!) performant and correct, but they must also be observable, resilient, and easily extensible. In this talk, Itamar will share from his experience in running microservices based on ZIO in production: resilient, Kubernetes-friendly structuring; cloud-native observability with logs, metrics and telemetry, and modern ways of service communication.
Othersβ
- Redis Streams with ZIO by Leszek GruchaΕa (October 2020)
- The Rise Of Loom And The Evolution Of Reactive Programming by John A. De Goes (October 2020)
- Izumi 1.0: Your Next Scala Stack by Pavel Shirshov and Kai (December 2020) β Frameworks are bulky, quirky, and non-compositional, which has led to a rejection of Spring and similar frameworks in the Scala ecosystem. Yet, despite their drawbacks, frameworks have been used to boost team productivity in many large companies. In this presentation, Paul and Kai will introduce Izumi 1.0, a Scala microframework based on compositional functional programming. Designed to help you and your team achieve new levels of productivity, Izumi now includes full compile-time checks for your configurable applications and completely reworked Tagless Final hierarchy for Bifunctors and Trifunctors.
- ZIO WORLD - Distage 1.0 (March 2020) β Distage 1.0, brings the power of tagless-final to trifunctor/bifunctor effect types, with a robust commercial-ready DI framework capable of working with TF & ZLayers w/compile-time validation.
- Demystifying Functional Effect Systems, Or Build Your Own (Toy) ZIO by Dmitry Karlinsky (December 2020) β Ever wondered how ZIO and other functional effect systems work under the hood? Sure feels like magic, sometimes! Dmitry Karlinsky is a big believer in learning by doing, and in this talk, the speaker will walk you through building a toy Scala effect system (called 'TIO'), from scratch, starting with a basic IO monad, and gradually adding capabilities such as Failure and Recovery, Asynchronous Effects, Stack Safety, and finally Concurrency with Fibers. Peek behind the curtain and demystify the technology that is becoming the backbone of modern Scala applications!