CAJUN meetup hosted by Akamai
By Philip Tellis on
Table of Contents
This post isn't the standard mPulse features post, but it gives me an excuse to talk about some of the behind the scenes capabilities of mPulse.
On May 21st, 2024, the mPulse team at Akamai hosted the local Julia User Group (known as CAJUN or the Cambridge Area Julia User's Network) for a meetup at our office in Cambridge.
The speaker was Jeff Bezanson - one of the co-creators of the Julia programming language, and his talk was about the development process followed by Julia.
There were about 42 attendees, and there was quite a bit of audience engagement.
What is Julia?
So you're probably wondering what Julia is and what it has to do with mPulse.
Julia is a programming language that came out of MIT around 2012. It caught our eye when we were looking to build advanced data analysis capabilities into mPulse back in 2013, and while it was still new at the time, we saw promise in the way it was designed and its approach to programming for data.
Structures in Julia are column-major, unlike most other languages that are row-major. This ordering means that when a complex data structure (like a database) is stored in memory, then all values of the same type are stored contiguously in memory. This in turn makes it very efficient to operate on columns of data in parallel rather than operating on records one row at a time.
There are many other features of the language that we like, like multiple dispatch, the ease of testing, and the ease of reusing code written in other languages. It's also fast - comparable to C or Fortran - for most operations.
Julia in mPulse
As I mentioned earlier, the mPulse team started using Julia in 2013, and it now powers all of our data science capabilities.
- The Datascience Workbench that our Professional Services team uses (also available to some mPulse customers), is built around a Jupyter interface to our Julia libraries.
- mPulse's Anomaly Detection capabilities are built around a pipeline that starts with modelling logic created in Julia.
- The What-If analysis feature of mPulse is written entirely on Julia, taking advantage of its ability to easily generate random distributions that match a curve.
- Impact Analysis, that identifies which parts of your site are most impactful to a user's propensity to convert or leave uses linear & logistic regression in Julia.
While it's true that most of these capabilities could have been written in other languages, we've found that both execution and development time are reduced when using Julia for jobs such as this.
Accessing mPulse through Julia
You can also get access to the mPulse API using Julia via mPulseAPI.jl.
It's available in the public package registry, so if you already have Julia installed, just ]add mPulseAPI
(or using Pkg; Pkg.add("mPulseAPI")
if you prefer that syntax)
and you're on your way.
In closing
We hope to host more Julia meetups at the Akamai office in the near future. We'd also love to speak about what we do with Julia and how it can enhance your usage of mPulse.