Giter Site home page Giter Site logo

paypal / squbs Goto Github PK

View Code? Open in Web Editor NEW
1.4K 107.0 237.0 7.72 MB

Akka Streams & Akka HTTP for Large-Scale Production Deployments

Home Page: http://paypal.github.io/squbs

License: Apache License 2.0

Scala 81.37% Java 18.63%
akka akka-http akka-streams reactive http-client

squbs's People

Contributors

akara avatar anilgursel avatar az-qbradley avatar crankydillo avatar dmartyanov avatar elong408 avatar fmasion avatar gitter-badger avatar harikiranvuyyuru avatar iamkewpie avatar jamesluoau avatar jaysucharitakul avatar jiminhsieh avatar keshin avatar longshorej avatar mdathrika avatar mdufresne avatar mjkrumlauf avatar mzeltser69 avatar phoenixsbk avatar pulukenata avatar sandrawolf avatar sarathchandran avatar sebady avatar thefourtheye avatar tutufool avatar vk9 avatar wleng avatar zhuchenwang avatar zoumuzou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

squbs's Issues

Move squbs request dispatching from Spray to akka-http

Akka-http 1.1 promises performance on par with Spray and will replace Spray going forward. squbs needs to adopt akka-http as the replacement for spray.

This issue is created to deal with akka-http from the server dispatch side.

Support registration of stream artifacts in squbs modules/cubes

squbs has been supporting registration of actors and services so far. With the arrival of akka-streams in squbs, we need to support registration of stream artifacts. We need to prototype/discuss the proper manifestation of these artifacts before going about implementing it.

Pipeline Enhancement

Refactor some classes from unicomplex to pipeline, most of them are from org.squbs.proxy, now moved to org.squbs.pipeline in squbs-pipeline project.

Simplify pipeline management, remove some classes like PipelineRegistry.

Test RouteDefinition in squbs

As today, if we want to test RouteDefinition using spray-testkit, we need to add some workaround to create the route instance.

e.g.

val actor = TestActorRef[DummyActor]

val route = RouteDefinition
.startRoutes(new SellercommunitysvcSvc)(actor.underlyingActor.context).route
class DummyActor extends Actor {
override def receive: Receive = {
case whatever =>
}
}

Then apply the route assertion like:

REQUEST ~> route ~> check {
ASSERTIONS
}

Implement admin console cube

This should expose system stats as well as JMX MBeans. Console could consist of well documented REST APIs so users can build and/or integrate with their own UI.

Give a readable actor name to ServiceActor when a proxy exists

Currently the actor name would be assigned to the ProxyActor if a processor exists, considering if we can give an name to the service actor in case of actor selection

https://github.com/paypal/squbs/blob/master/squbs-unicomplex/src/main/scala/org/squbs/unicomplex/Unicomplex.scala#L621

        proxyName.fold(pipelineManager.default) {
          case "" => None
          case other => pipelineManager.getProcessor(other)
        } match {
          case None =>
            val hostActor = context.actorOf(props, name) // disable proxy
            (hostActor, SimpleActor(hostActor))
          case Some(proc) =>
            val hostActor = context.actorOf(props)
            (hostActor, ProxiedActor(context.actorOf(Props(classOf[CubeProxyActor], proc, hostActor), name)))
        }

A problem we need to consider is, what the actor names should be for the ServiceActor and ProxiedActor

Improve/Simplify Orchestration DSL

The orchestration DSL currently requires users to write the initial expectOnce block, which is boilerplate. We should be able to use a typed actor for the same purpose and eliminate this boilerplate, thus passing the received initial message and the original requester to the orchestrate function directly.

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.