Tag Archives: Reactive Streams

Releasing squbs 0.9.0

By

squbs (pronounced “sqewbs” and rhymes with “cubes”) has already made past headlines (details) for its great performance and scalability. squbs 0.9 is the biggest update to squbs yet. It paves the road towards squbs 1.0. The updates in squbs 0.9 covers the following areas:

  • Full migration from Spray to Akka HTTP
  • Support for HTTP end-to-end streaming and back-pressure with the new low-level FlowDefinition API for service definitions
    • Ultimate resiliency
    • Lowest-possible latency
  • Brand-new streaming HTTP client
    • With integrated client configuration and circuit breaker
  • Java API as first class citizens (besides the solid, powerful Scala API) enabling end-to-end Java use cases
  • Rich set of stream components:
    • CircuitBreaker (new)
    • De-duplicate (new)
    • Timeout (new)
    • PersistentBuffer with new commit stage
    • BroadcastBuffer with new commit stage
  • New streaming pipeline architecture for both server-side request handling and client-side outgoing requests
    • Allows for logging, monitoring, authentication and other pre and post-processing of requests and responses
  • Out of the box Codahale metrics for server and client side monitoring

All in all, squbs 0.9 is a rock-solid layer for building and deploying high-performance and highly resilient applications using Akka, Akka Streams, and Akka HTTP at the enterprise and internet scale.

Please see release notes for all the changes in squbs 0.9.0.

Outlook:

squbs 0.9 provides the rock solid foundation for squbs moving to the 1.0 release. We do not anticipate major API changes going forward. Following are the largest expected changes between squbs 0.9.0 and 1.0.0:

  • Upgrade from Akka 2.4.x to Akka 2.5.x. This will have impact on Java actor use cases moving to the final AbstractActor API in Akka 2.5.x.
  • Upgrade from Scala 2.11.x to Scala 2.12.x

Why squbs?

squbs is the end-to-end asynchronous, reactive architecture for building high performance and highly resilient applications inside and outside PayPal. It is used for highly demanding fast data ingestion and processing pipelines in PayPal and lends itself well for high volume and/or low latency services, message processors, and ETL applications.