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.

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
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.

Nokia Nokia
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.