Skip to content

Instantly share code, notes, and snippets.

@calvinlfer
calvinlfer / distributionflow.scala
Last active March 30, 2019 13:23
Akka Streams Flow that distributes messages (according to a hashing function) across sub-flows. The idea is to have ordered processing per sub-flow but parallel processing across sub-flows.
import akka.stream._
import akka.stream.scaladsl._
/***
* Example based on numBuckets = 3
* --- bucket 1 flow --- ~mapAsync(parallelism)~ ---
* |------------------| / \|---------------|
* Open inlet[A] --- | Partition Fan Out| --- bucket 2 flow --- ~mapAsync(parallelism)~ -----| Merge Fan In | --- Open outlet[B]
* |------------------| \ /|---------------|
* --- bucket 3 flow --- ~mapAsync(parallelism)~ ---
*
@rasjones
rasjones / gist:f347f148b9a8787049a6
Created May 31, 2015 09:54
Swagger Akka HTTP MicroServices Example
import akka.actor.ActorSystem
import akka.event.{Logging, LoggingAdapter}
import akka.http.scaladsl.Http
import akka.http.scaladsl.client.RequestBuilding
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
import akka.http.scaladsl.marshalling._
import akka.http.scaladsl.model._
import akka.http.scaladsl.model.StatusCodes._
import akka.http.scaladsl.server.Directives
import akka.http.scaladsl.server.Directives._
@bfil
bfil / EmbeddedMongo.scala
Created February 18, 2015 23:14
EmbeddedMongo for ReactiveMongo
import java.util.logging.Logger
import scala.concurrent.ExecutionContext
import de.flapdoodle.embed.mongo.{Command, MongodStarter}
import de.flapdoodle.embed.mongo.config.{MongodConfigBuilder, Net, RuntimeConfigBuilder}
import de.flapdoodle.embed.mongo.distribution.Version
import de.flapdoodle.embed.process.config.IRuntimeConfig
import de.flapdoodle.embed.process.config.io.ProcessOutput
import de.flapdoodle.embed.process.runtime.Network
package voldemort.hashtrees;
import java.util.BitSet;
import java.util.concurrent.atomic.AtomicIntegerArray;
import voldemort.annotations.concurrency.Threadsafe;
/**
* Default {@link BitSet} provided in java is not thread safe. This class
* provides a minimalistic thread safe version of BitSet.
package eval
import scala.reflect.runtime.currentMirror
import scala.tools.reflect.ToolBox
import java.io.File
object Eval {
def apply[A](string: String): A = {
val toolbox = currentMirror.mkToolBox()