A free, once-weekly Scala news flash. Easy to unsubscribe. Goes out every Thursday.
March 19th, 2020, ISSUE 318

READING

Akka Cluster application design

Learn how to leverage Akka Cluster to build a simple application which is horizontally scalable in true ES/CQRS spirit.
Krunoslav Uzelac (@krunoslavuzelac)
Spring to ZIO 101

How would one coming from a Spring background get their bearings fast with FP & ZIO?
Adrian Filip (@realAdrianFilip)
NE Scala in the Time of Social Distancing

We wound up using a combination of Zoom and Slack to make it happen, and while it wasn’t the same as the in-person conference would have been, it worked solidly well for the talks and adequately for the socializing.
Mark "Justin" Waks (@jducoeur)
Scala 3 support in IntelliJ Scala plugin

Get preliminary support of Scala 3: the new syntax, error highlighting, navigation, type info, and many other bread-and-butter IDE features.
Pavel Fatin (@pavelfatin)
Separate Docker Layers for Dependencies and App JARs

How newest enhancement of SBT Native Packager Docker Plugin will save you some disk space.
Przemek Piotrowski (@ppiotrow)
What are the benefits of the ZIO modules with ZLayers

Providing the runtime / environment is now easy and flexible!
Pascal Mengelt
Migrating ZIO environment from RC-17 to RC-18

Some great examples about how to migrate your current code to ZLayers.
Wiem Zine (@WiemZin)
The cost of Scala Option

It may not be as cheap as you wish.
George Leung
Top Link of February: Building Serverless Scala Services with GraalVM

This was definitely the most popular article last month, so let's recap!
Noel Welsh (@noelwelsh)

EVENTS

ScalaUA, April 3th-4th, Kyiv, Ukraine

Wholesale 10+ tickets are available till 2020.04.02.
ScalaUA (@ScalaUA_Conf)
Scala Love Remote Conference, April 18

CFP is open now!
Scala Love (@scala_love)
Effective Scala Workshop, April 21-22. Join us in person at San Damiano in Danville, CA, USA, or connect remotely.

Use code: SFSCALAAPR20 to get -10%.
Artima, Inc (@ArtimaInc)
Scala Swarm, June 18th-23rd, Porto, Portugal

Ticket sale is now open, come quick and grab your ticket to this unique event!
ScalaSwarm (@ScalaSwarmConf)
Scalar, October 8th-10th, Warsaw, Poland

Get ready for the workshop-driven FP event in Poland!
Scalar (@scalarconf)
[cancelled] ZIO Hackathon, March 22nd-23rd, Warsaw, Poland

The event has been cancelled due to the COVID-19 virus.
Ziverge (@zivergetech)
[cancelled] flatMap(Oslo), May 14th-15th, Oslo, Norway

The event has been cancelled due to the COVID-19 virus.
flatMap(Oslo) (@flatmaposlo)

RELEASES

Scala 2.12.11

Performance improvements, fixes, and more!
Scala contributors
scala-xml 1.3.0

Fixes for Scala 2.13, Publish for Scala.js 1.0, various unused public classes and methods are deprecated.
scala-xml contributors
Akka 2.6.4

In addition to bug fixes and improvements it includes 3 bigger new features related to Akka Cluster, including powerful sharded daemon processes.
Akka contributors
Dotty 0.23.0-RC1

Safe initialization checks, type-level bitwise operations and more.
Dotty contributors

VARIA

Scala Times banners?

Want one? Click here
THE INTERNET
Scala Times stickers?

Want one? Let us know or tweet @scalatimes.
THE INTERNET
Scala experts?

Need some? SoftwareMill is here, ready to talk and dive deep into your code.
SoftwareMill





  1. Scala Times Issue #320

    New feature: Search!. Bake your bread tagless-final style. User-land compiler warnings in Scala. Zio ZLayer with playframework. Testing background process with ZIO.


  2. Scala Times Issue #319

    From idea to product with ZLayer. Edge to Cloud: Building the Tesla Virtual Power Plant . What's the Point of Applicative?. Using ScalaCheck with MUnit. Monitoring and tracing for Akka applications under kubernetes (k8s).


  3. Scala Times Issue #318

    Akka Cluster application design. Spring to ZIO 101. NE Scala in the Time of Social Distancing. Scala 3 support in IntelliJ Scala plugin. Separate Docker Layers for Dependencies and App JARs.


  4. Scala Times Issue #317

    Using Google Datastore with akka-persistence. Functional Program (Re)Design. Writing native CLI applications in Scala with GraalVM. Data Juggling - Part 8 - Getting Started with refined. Fundamentals of Scala, March 14th-15th, Lagos, Nigeria.


  5. Scala Times Issue #316

    How to publish a Scala library in GitHub. Announcing Cats STM 0.7.0. Baking Peixinhos da Horta with ING’s Baker Library. Fundamentals of Scala, March 14th-15th, Lagos, Nigeria. Stairway to Scala Workshop, March 16th-20th, San Damiano, CA, USA.


  6. Scala Times Issue #315

    ZIO for IntelliJ. Scala 2 community build reaches goals. Cats Effect Ref. Using Dotty Union types with Akka Typed – Part II. Caliban Client: a type-safe GraphQL Client for Scala and Scala.js.


  7. Scala Times Issue #314

    Using Dotty Union types with Akka Typed. My FP Journey. Creating a dead simple CountDownLatch with ZIO. ZIO STM: CountDownLatch in two lines. 2019 Scala Developer Survey.


  8. Scala Times Issue #313

    Building Serverless Scala Services with GraalVM. Alpakka Kafka 2.0 Released | @lightbend. Haskell for impatient Scala developer: Getting into speed. Building useful Scalacheck Generators. Easily create New Sync Types with ZIO STM.


  9. Scala Times Issue #312

    Happy eyeballs algorithm using ZIO. How (not) to use shapeless for cross-layer conversions in Scala. So you want to compose some functions. RESTful error handling with Akka HTTP and the library “endpoints”. MUnit is a new Scala testing library · MUnit.


  10. Scala Times Issue #311

    Introducing error reporting in optics. GraphQL in Scala with Caliban - Part 1. Tidying up your SBT file with Scala. Dependency injection with Reader Monad in Scala. Etcd watch API integration with scala and cats-effect.


  11. Scala Times Top Links of 2019

    January: Scala Best Practices. February: Is your Scala object always a singleton?. April: Did Functional Programming get it wrong?. May: The little gems of Scala standard library. June: The Evolution of a Scala Programmer.


  12. Scala Times Issue #310

    Git hooks in Scala projects  - the easy way!. Testing Doobie programs. Implementing typeclasses in Scala I. Effective testing with ZIO Test. Akka Streams: error handling in event processing pipelines.


  13. Scala Times Issue #309

    Towards more functional Play — Part 2. TMWL’ Dec 19 — Scala 3 overview, Scala hacks and DevOps hints. Scala etcd client with etcd4s and cats-effects. Boilerplate-free type class definition. GCP Cloud Functions with Scala.js in 10 lines(ish).


  14. Scala Times Issue #308

    Towards more functional Play  -  Part 1. ZIO environment meets constructor-based dependency injection. How-to run tests in parallel with sbt. Learn myself some Scala 3, episode 4: strict equality. 5 pitfalls to avoid when starting to work with ZIO.


  15. Scala Times Issue #307

    Standardizing IO Interfaces for Scala Libraries. WebSocket Streaming with Scala. State of Monocle. Scala tooling in 2019. How to Work with Scala Collections in Java.


  16. Scala Times Issue #306

    2019 Scala Developer Survey . Lessons Learned Building a Van Laarhoven Lens Library. A Glossary of Functional Programming. Tips for moving from tut to mdoc. Notes on Category Theory in Scala 3 (Dotty).


  17. Scala Times Issue #305

    Beyond Liskov: Type Safe Equality in Scala. Scala 2 Roadmap Update: the Road to Scala 3. Explicit nulls are in!. Functional Scala London 2019: Day 1. Leveraging Monoids for More Powerful Summarization.


  18. Scala Times Issue #304

    Akka references serialization with Protobufs (up to Akka 2.5). TMWL November’19 — ScalaTest, Medusa, PW-Sat2 cubesat. Implement your future with ZIO. Decouple the Program from its Implementation with ZIO modules. ZIO environment and modules pattern: zio, scala.js, react, query management.


  19. Scala Times Issue #303

    Write your own micro BDD test framework in one day. Monoid in the Category of Endofunctors. Introducing Scala Server Toolkit. How to write a command-line application with ZIO. Picking a Languages for Introductory CS  - The Argument Against Python.


  20. Scala Times Issue #302

    Regexp Replacement via Function in Java/Scala. Rationality in a Natural World: Arithmetic at the Type-Level. Transforming Data with Embedded Spark. Migrate a service getting 200KQPS from Jackson to Circe. Scala Type Classes comparison.


  21. Scala Times Issue #301

    Functors  - From Category Theory into Cats. Tour of Akka Typed: Cluster Sharding. The Future.await(s) for no one. Service architecture in Scala. Streaming the last few minutes from Kafka using Akka Streams.


  22. Scala Times Issue #300

    How an Optimizing Compiler Works. TMWL October’19  - Scala Steward, DB index and a React hack. Working with HTTP in Polynote. How I learned to stop worrying and love FP in Scala. A real life example of isomorphisms in Scala: POST request.


  23. Scala Times Issue #299

    Kleisli Category - From theory to Cats. Presto with Doobie. Lambda World 2019. Speeding up time with Zio TestClock. Simulating IoT Events - with Zio Streams.


  24. Scala Times Issue #298

    Scala application lifecycle, from pure Scala to FS2. Top 5 things that slow down your Scala build - Triplequote. ZIO, Http4s, Auth, Codecs and zio-test. Magnolia typeclass generation for Avro. Bird Operator in Scala.


  25. Scala Times Issue #297

    Websockets in Scala using sttp. Vim with Dotty (using coc vim). Sizeof in Scala. Scala Classes - Syntax, Declaration, Use case, Examples. How to structure your Scala application?.


Organizing an event?
Promote it with
Scala Times.
The Scala Times reader?
Get a banner!
Got a tip?Send it in!
Follow us onTwitter.
Curated bySoftwareMill.
We arehiring.
Andtaking on projects.