Skip to content

jabrena/latency-problems

Repository files navigation

Latency problems

Motivation

Euler problems are an excellent source of Mathematical problems to improve your programming skills. The problems are able to be solved with multiple programming paradigms like Object Oriented, Functional or Reactive.

But in the implementation process, I missed that the problems don´t add any Latency factor to increase the complexity and this is part of the daily problems for every Software Engineer in the market.

Modern programming languages provide native solutions to manage latency. In Java, you can use Structured Concurrency with Virtual Threads or CompletableFuture, in Kotlin you can use Coroutines, in Scala you can use Future, in Clojure you can use Future.

On top of the languages, exist libraries that improve the way to manage asynchronous calls with jox or use a Reactive solutions with Backpressure support out of the box.

In Reactor you can use Mono or Flux objects, in RxJava, you can use Flowable & finally, in Mutiny you have Uni or Multi.

Finally, exist libraries that offer rich implementations of Reactive programming patterns. In Resilience4j, you could find solutions for: Circuit breaking, Rate limiting, Automatic retrying

The purpose of this repository is the design of a set problems adding the Latency as part of the problem to be solved in several ways.

Enjoy the journey!

Juan Antonio Breña Moral


Problems

  • Problem 1: Consume God APIS (Greek, Roman & Nordic) and filter gods starting by 'n', convert into Decimal format and sum.
  • Problem 2: Calculate what Greek god has more literature in Wikipedia.
  • Problem 3: Develop a REST Gateway about Gods.
  • Problem 4: Develop a REST API to offer in a single endpoint God Data from multiple Mythologies
  • Problem 5: Develop a REST API which read Greek god data which it is synchronized periodically from a third party service.
  • Problem 6: Return all Greek gods starting with a and apply a Rate limit policy, Retry & Circuit Breaker for incoming http requests.
  • Problem 7: Return all Roman gods finishing the name with s and apply a Retry & Circuit Breaker behaviour for the integration with theexternal third party
  • Problem 8: Calculate the popularity of Indian gods in Mahabharata
  • Problem 9: Develop a REST API which read data from a Kafka topic with the name greek-gods

Releases

No releases published