Você está na página 1de 2

Company Overview

Janrain (Portland, OR) was founded in 2004 to solve the


problem of managing the numerous username/password
combinations consumers must keep track of in the
increasingly online world. It was an early participant in the
OpenID protocol project. From that work, its product
expanded to help brands manage their online relationships.
Today, the Janrain User Management Platform (JUMP)
makes it easy for clients to acquire, engage and learn more
about their consumers. Janrain has 365,000 customers in all
industries across the globe, including top-tier organizations
such as Fox, United Nations, Samsung, Bechtel and NPR.

The Problem and Requirements

JUMP has a backend database and an API accessible via
HTTP. Janrain began by using Ruby on Rails, with one
element of the backend developed in Haskells Snap
framework. It wasnt long before the engineers
experienced high errors in their Ruby code, while their
Haskell work produced lean, error-free code. Programmers
saw that Haskell was an excellent approach to add new
features easily and securely with clean and lean code.

HaskellWrite Fearlessly, Build Confidently

When working with Haskell, the programmers found that
they spent little time debugging and testing their code.
They were confident that greater than 75% of their code
would be right and that the built-in type system would find
whatever errors there were. They could write fearlessly
without breaking the code, as theyd found altogether too
common with Ruby.

After this initial success, Janrain had the confidence to build
its backend database solution entirely in Haskell, taking
advantage of its reliable type system and checking
functionality. The end result: the highest-quality production
code in less time. The modularity and libraries in Haskell
facilitated extensive code reuse and parallel development,
as well, further enhancing productivity and reliability.

Case Study

Industry/Application
Online user management SaaS
Problems
Started with Ruby on Rails, which:
Had high error rates.
Caused API to crash.
Was fragile, unreliable.
Haskell Solution/benefits
Low errors, which were found during
compiling, not runtime.
Much less time testing and
debugging.
Faster time to market at lower cost.
Scale database calls from 1,000s/sec.
to 10,000s/sec.
Stable, error-free code ensured long-
term reliability and maintainability.


We didnt have to worry about
breaking our Haskell code. It just
runs and runs, no matter how
much we add to it or change.


Haskell does exactly what we
need it to do every time.
--Philip Weaver
Sr. Software Engineer

JanrainUser Management System

We didnt have to worry about
breaking our Haskell code. It just
runs and runs, no matter how
much we add to it or change. We
try not to touch Ruby very much,
out of fear of crashing the API.

--Philip Weaver
Sr. Software Engineer


HaskellConcurrency and Scale

Another key requirement was for the backend to support
JUMPs multitenant architecture with simultaneous API calls
from multiple clients. Haskell ensured that JUMP would run with
strong concurrency in their server environment, so that the
frontend could send and receive multiple calls from their diverse
clientele with ease. As it shifted into production, JUMP was now
capable of handling thousands of logins per second, with the
expectation that it would support tens of thousands logins per
second as the client base grew.

In contrast, Rubys tendency to crash the API limited its use to prototyping the API and performing only
simple modifications in the production version.

HaskellMultiple Benefits

In summary, Haskell contributed significantly to Janrains growth. It delivered to Janrain:

Robust, clean prototypes with few errors.

Reduce time spent on testing and debugging significantly.

Deploy changes and new functions simply, error free.

Shorter development cycle led to faster time to market at much lower cost.

Robust solution processing thousands of requests per second scalable to tens of thousands of
requests per second.

Stable, error-free code ensures long-term reliability and maintainability.






Copyright 2013, FP Complete Corp. All rights reserved.


Our practical users learned to code in Haskell easily, becoming knowledgeable in under a year and
proficient in one to two years. They didnt have to be PhDs in computer science to pick it up and
could write error-free code that was much faster and easier to maintain than in Ruby.

--Philip Weaver
Senior Software Engineer

Você também pode gostar