Scala Development

We love developing scalable systems using Scala language @ Sphere. Scala is an acronym for “Scalable Language”. This means that Scala grows with you. You can play with it by typing one-line expressions and observing the results. But you can also rely on it for large mission
critical systems, as many companies, including Twitter, AirBnD, Netflix, LinkedIn, or Walmart do.

To some, Scala feels like a scripting language. Its syntax is concise and low ceremony; its types get out of the way because the compiler can infer them. There’s a REPL and IDE worksheets for quick feedback. Developers like it so much that Scala won the ScriptBowl contest at the 2012 JavaOne conference.

At the same time, Scala is the preferred workhorse language for many mission critical server systems. The generated code is on a par with Java’s and its precise typing means that many problems are caught at compile-time rather than after deployment.

Companies that Use Scala

Why Scala

Pragmatism

Scala’s blend of object-oriented and functional
programming allow to use it to quickly build
things from simple parts as well making it easy
to construct complex systems and to adapt
them to new demands.

Scalability

Scala name refers to “Scalable Language”
which means it was designed to fit multicore
and distributed computing world with large
development teams, large codebases, and
large numbers of CPU cores.

Compatibility

Scala runs on JVM and is fully interoperable with
Java. You can use existing Java libraries and Java
tools, call Java methods, access Java fields, inherit
from Java classes, and implement Java interfaces.
In some cases, Scala and Java could be combined.

Brevity

Typical Scala programs are twice shorter as
compared to Java. Brevity means less time
spent on writing, reading and understanding
code as well as fewer possibilities of the defects.

Learn how our Scala experts can
help your organization.

We are experts with

Play is a framework that makes it easy to build
scalable, fast and real-time web and mobile
applications with Java & Scala. It aims to optimize
developer productivity by using convention over
configuration, hot code reloading and display of
errors in the browser.

Akka is a toolkit and runtime simplifying the
implementation of the Actor concurrency model
and construction of concurrent and distributed
applications on the JVM. Akka enables adaptive
cluster management, load balancing, routing,
partitioning and sharding.

Spark is a fast and general cluster computing
framework for large-scale data processing
built on Scala. Spark runs on Hadoop, Mesos,
standalone, or in the cloud and powers a wide
range of organizations to process large datasets.

Customer Case Studies

CORPORATE & INVESTMENT BANKING

Technologies

Scala

Spring Integration

Pivotal Gemfire

RabbitMQ

Oracle

C24

Solution

Solution Architecture

Software Development

ETL ( Extract, Transforming, & Loading )

Problem

Societe Generale (SG) has nearly 12,000 employees in 37 countries who deliver worldwide expertise in investment banking, global finance, and global markets. SG has a complex distribution system for processing trading instructions. Although these instructions originate from exchanges, they are routed to the appropriate subsystems for further processing. During the routing process, these instructions are enhanced by applying routing and enrichment rules and then translated to different formats. These rules often change due to modifications in financial regulation. Sphere was asked to change the message flow routing which involved the OCC Exchange. The OCC is the registered clearing facility for all U.S. exchange-listed securities options. Sphere was also required to coordinate the message processing in multiple data centers and subsystems in different geographical areas.

Solution

​Sphere addressed these challenges by developing new trading message flows between the required exchanges and financial systems with Scala and Java. The routing rules and adapter pipelines for message enrichment and validation were changed in the existing NVision framework. Sphere formatted and executed the field transformation for messages in NewClear which is a subsystem that reconciled the buying and selling of trading, as well as for GMI and Shadow. Routing rules, enrichment data, and configuration information were obtained via GemFire and Oracle servers. Sphere also developed and implemented a unique message broker substitution workaround for the UAT ( User Acceptance Testing ) environment which simulated various infrastructures for message flows. Lastly, flow visualization in NVision Web Dashboard was also adjusted.

Technologies

Scala

Spring Boot

Oracle

Spring Cloud / Netflix

RabbitMQ

Eureka

Hystrix

Solution

Solution Architecture

Software Development

Cloud

Microservices

Problem

Nokia manages one of the largest data communications networks in the world that weaves together mobile broadband, fixed access, IP routing, optical technologies, and Cloud applications. These networks are becoming increasingly strained as wireless technologies continue to penetrate new markets and remote populations. Nokia asked Sphere to integrate the code from different legacy solutions as well as their web/non-web services that were written in Java and Scala which handled map object updates from various databases.

Solution

Sphere implemented a Spring Cloud configuration server that centralized storage and delivery for all instances. A new Netflix micro-services architecture was designed to improve services configuration, flow, monitoring, and delivery. As a result, the configuration for all instances were stored in one place and automatically propagated to service instances. The code became more readable and maintainable. Services were auto-discovered through the Eureka server that was running in high-availability mode and their states were monitored by a Hystrix web dashboard. Furthermore, there were no more legacy XML configuration for application instances.