GithubHelp home page GithubHelp logo

futures's Introduction

Exercises on Scala Futures

Introduction

Futures provide a simple way to run an asynchronous computation. Future starts a computation when you create it and then eventually returns the result. For example, every RPC invocation at Wix is a function that returns a Future of the RPC service result. See more information about Futures API in the documentation

Futures are composable. We consider the following common cases of Futures composition:

  • Sequential composition with or without error accumulation;
  • Concurrent composition with or without error accumulation;

See the details below.

Exercises

Kata1 "Fallback"

This is an exercise on the sequential Futures composition without error accumulation. This exercise uses composition of both sync and async operations.

Kata2 "Retry"

This is an exercise on the sequential Futures composition with error accumulation. This exercise uses a recursion although a non-recursive solution would be better.

Kata3 "Traverse"

This is an exercise on the concurrent Futures composition without error accumulation. This is just a straightforward use of Future.traverse.

Kata4 and Kata5 "Traverse with errors accumulation"

These are exercises on the concurrent Futures composition with error accumulation.

futures's People

Contributors

michaelwix avatar

Watchers

 avatar

Forkers

wix-academy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.