Become a Partner

What is the profile of a Lightbend System Integrator (SI) Partner?

The Lightbend SI Partner has the size, resources as well the technical and business domain capabilities to deliver a turnkey solution based on the Lightbend product offering. The commercial products of Lightbend are frequently applied in such customer projects. The Lightbend SI Partner typically resells the Lightbend products as a part of their solution stack. A SI Partner may cover just a specific geographical region or act globally.

Why becoming a Lightbend Consulting Partner?

IT Consulting and Implementation organizations with excellence in Lightbend technology should consider to become a Lightbend Consulting Partner. We are proud of our strong network of extremely capable partners, spread all over the world. The listing of our valued partners on the Consulting Partner page is a statement for the competence of such organizations in Reactive and/or Fast Data technology.

We recommend Consulting Partners frequently to our prospects and customers. In some situations we have the opportunity to subcontract our partners to complement our Professional Services teams with specific know-how and/or local language skills.

What to know about becoming a Lightbend SI or Consulting Partner

Thanks for your interest in becoming a SI or Consulting Partner with Lightbend. In order to provide the best possible experience for our technology users across the globe, we’ve created this “Capabilities Checklist” to give you an idea of the expertise and capabilities our customers need from our partners. Please review it, and get in touch with us using the form below.

Capabilities Checklist for Potential System Integrators

Scala Capabilities

  • Object-Oriented concepts (packages, classes, inheritance, case classes, stackable traits, the Cake Pattern and what is good and bad about it, etc)
  • Functional Programming concepts (Referentially transparent, immutable, expression-oriented, inputs/outputs, strictness versus laziness)
  • Have you defined your own types that implement combinators (data sanitation)
  • Explain how for-comprehensions are desugared
  • Pattern matching
    • Bonus question: how is a pattern match that uses an extractor desugared
  • Implicits (arguments, classes, conversions)
    • Typeclasses
    • The Enhance Your Library pattern
  • Collections
    • Describe one collection in depth
    • Structural sharing
    • Performance characteristics
  • Type Theory (terms/types, variance, type bounds)
    • The Scala type system
    • Self types
    • Path-dependent types
    • Type recursion
  • Macros
    • Black box versus white box macros
    • The Macro Paradise project
    • Quasiquotes
  • Asynchrony
    • Understand Asynchrony and non-blocking, concurrent and parallel
    • Futures and Promises, the Async library
    • ManagedBlocking
    • Executors and thread pools,
    • Parallel collections and Blitz
    • Amdahl's Law
  • Error handling (Try, scala.util.control._, UncaughtExceptionHandler)
  • Testing
    • JUnit/TestNG
    • ScalaCheck
    • ScalaTest
    • specs2
    • JMH
    • Volume (Gatling, Bees with Machine Guns, wrk2)
  • Scala.js
  • Static analysis/toolchain (linter, code coverage, security, style enforcement)
  • JVM tuning (Garbage Collection strategies, region sizing and GC tuning, JVM flags, Java Microbenchmarking Harness, HDRHistogram)
  • Thread safety (StampLock and new Java 8 constructs, reentrant locks, read/write locks, volatile fields and memory barriers)
  • sbt (native packager, multiple sub-projects, have they written plugins?)

Akka Capabilities

  • Scala API
  • Java API
  • Actor basics (create actors, send messages, routing strategies)
  • Supervision and lifecycle (directives, deciders, hooks)
  • Futures/Promises in actors
  • Agents
  • Spray & Akka HTTP (Spray Can, the Magnet Pattern, directives, routing DSL)
    • EventSourced
    • Akka Persistence
    • Eventuate
    • Serialization strategies
    • Storage backends
  • Data Replication
  • Serialization
  • Akka IO
  • Akka Streams
  • Remoting
  • Clustering
    • Routing Strategies
    • PubSub pattern
    • Distributed Workers pattern
    • Singleton vs Sharding
  • Akka Camel
  • Testing
    • Akka TestKit (Probes, TestActorRef)
    • HTTP TestKit
    • Multi-JVM tests
  • Tuning (know various Dispatchers and when to use them, isolation of thread pools, batching through the throughput setting)
  • Monitoring

Play Framework Capabilities

  • Scala
  • Java
  • Websockets
  • Templating (Twirl, others?)
  • Routing/reverse routing/filters
    • Implementing in Scala
    • Configuring in Scala and Java
  • ORM
    • Anorm
    • eBean
    • Slick
    • JPA/Hibernate
  • Security (authentication, authorization, SSL, libraries for storing passwords like bcrypt/scrypt)
  • sbt (understands multi-project setup, has written plugins
  • sbt-web (Know the capabilities of sbt-web, what plugins exist, how to configure them, have written an sbt-web plugin)
    • Asset fingerprinting
    • Asset pipeline
  • Forms/Data Binding
    • Scala json API
    • Scala form API
    • Java json API (jackson)
    • Java form API (spring-data)
  • Client-side development (similar to sbt-web, but more about knowing the general approaches to client side development, what tech exists, various approaches to optimising client side apps such as fingerprinting,concatenation, minification, CDNs, etc)
  • Plugins (Have written a Play plugin, where plugins fit into the Play lifecycle, etc)
  • Asynchronous programming
    • Futures/Promises
    • Iteratees
    • Integrating with Akka
  • Action composition
    • In Scala, action builders etc
    • In Java, via annotations
  • i18n/localization
    • messages
    • number/date formats
  • Tuning (Coda Hale Metrics, Bees with Machine Guns/Gatling, latency measurement)
  • Monitoring

Fast Data Capabilities

  • Streaming data / analytics expertise
  • Domain and implementation knowledge across these areas:
    • Stream Processing Engines
      • Kafka Streams
      • Akka Streams
      • Spark
      • Flink
    • The SMACK stack
    • Integrating streaming data pipelines and microservices
    • Mesos/Marathon and Kubernetes
    • Migrating workloads from YARN
    • Performance Tuning
  • Data science
  • Machine learning

Deployment Capabilities

  • Cloud
    • AWS (S3, EBS, ...)
    • Rackspace
    • SoftLayer
  • Continuous Integration (CI)
  • Continuous Delivery / Deployment (CD)
  • Autoscaling (e.g. Monitis combined with Nagios or New Relic)
  • Configuration Management (Puppet/Chef/Ansible)
  • Virtualization (Vagrant/VirtualBox)
  • PAAS (CloudFoundry, Stackato, Azure, OpenShift)
  • Containers (Docker, Rocket)
  • Deployment management (ConductR, Marathon/Chronos, Kubernetes)
  • Mesos/DCOS

Ready to get in touch?

Just tell us a little bit about yourself by completing the form below and we’ll get back to you as soon as possible.