SlideShare a Scribd company logo
Serverless Haskell
Alexey Kotlyarov & David Overton
Motivation
● AWS Lambda and the Serverless Framework make it easy to write small
functions and deploy them to the cloud…
● … but not in Haskell
● Aim: to make it as easy to do serverless programming in Haskell as it is in
NodeJS or Python
●
What we did
● Serverless Haskell
● Developed over a 3 day Hackathon at SEEK in December 2017
● Consists of
○ A Serverless plugin
○ A Haskell library
Serverless plugin
● Provides a NodeJS wrapper that spawns your Haskell executable
● Hooks up pipes for input, output and logging
● At the moment it will spawn a new exe on each invocation
● Future plan: keep the exe running so that it can handle multiple invocations
Haskell library
lambdaMain ::
(Aeson.FromJSON event, Aeson.ToJSON res)
=> (event -> IO res) -- ^ Function to process the event
-> IO ()
Event types
Types for dealing with common Lambda events
So far
● SNS
● S3
● Kinesis
● APIGateway
Plan to add more.
Alternative events
● Compose handlers for different types of events
Embedded events
● Some event types (e.g. SNS, APIGateway) have stringified JSON or Base64
embedded within string values in the JSON
● TextValue and Embedded
Examples
Conclusion
● We have several Lambdas at SEEK using this
● GitHub https://github.com/seek-oss/serverless-haskell
● Also on npm, hackage and stackage
● Future extensions:
○ Allow more than one Lambda invocation
○ Allow multiple functions per project
○ Expand the supported event types
● We would love to get more users
● Pull requests invited

More Related Content

What's hot (20)

PPTX
Experiences sharing about Lambda, Kinesis, and Postgresql
Okis Chuang
 
PDF
Universal Serverless with AWS Fargate
Eka Cahya Pratama
 
PPTX
Serverless Architectures
Lynn Langit
 
PDF
PloneConf2017: serverless python for astronaut safety
Chris Shenton
 
PDF
Go With The Flow
PhilWinstanley
 
PDF
From business requirements to working pipelines with apache airflow
Derrick Qin
 
PDF
React meets o OCalm
Michał Załęcki
 
PDF
MongoDB. local Houston 2019: Distributed Transactions: With Great Power Comes...
MongoDB
 
PDF
How to move a mission critical system to 4 AWS regions in one year?
Wojciech Gawroński
 
PDF
PyConIE 2017 Writing and deploying serverless python applications
Cesar Cardenas Desales
 
PDF
Docker ecosystem
Bohdan Sydor
 
PDF
Deploying .Net Core Application to AWS ECS Fargate
kloia
 
PPTX
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...
AWS User Group - Thailand
 
PDF
How LogDNA Scaled Elasticsearch on Kubernetes
LogDNA
 
PDF
Nextflow and AWS Batch - GCC/BOSC 2018
Francesco Strozzi
 
PDF
Logging in The World of DevOps
DevOps Indonesia
 
PDF
DevOps in real life
DataArt
 
PPTX
The New era in QA: k6
kloia
 
PDF
DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Ams...
Codemotion
 
PDF
PyConIT 2018 Writing and deploying serverless python applications
Cesar Cardenas Desales
 
Experiences sharing about Lambda, Kinesis, and Postgresql
Okis Chuang
 
Universal Serverless with AWS Fargate
Eka Cahya Pratama
 
Serverless Architectures
Lynn Langit
 
PloneConf2017: serverless python for astronaut safety
Chris Shenton
 
Go With The Flow
PhilWinstanley
 
From business requirements to working pipelines with apache airflow
Derrick Qin
 
React meets o OCalm
Michał Załęcki
 
MongoDB. local Houston 2019: Distributed Transactions: With Great Power Comes...
MongoDB
 
How to move a mission critical system to 4 AWS regions in one year?
Wojciech Gawroński
 
PyConIE 2017 Writing and deploying serverless python applications
Cesar Cardenas Desales
 
Docker ecosystem
Bohdan Sydor
 
Deploying .Net Core Application to AWS ECS Fargate
kloia
 
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...
AWS User Group - Thailand
 
How LogDNA Scaled Elasticsearch on Kubernetes
LogDNA
 
Nextflow and AWS Batch - GCC/BOSC 2018
Francesco Strozzi
 
Logging in The World of DevOps
DevOps Indonesia
 
DevOps in real life
DataArt
 
The New era in QA: k6
kloia
 
DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Ams...
Codemotion
 
PyConIT 2018 Writing and deploying serverless python applications
Cesar Cardenas Desales
 

Similar to Serverless haskell (20)

PDF
State of serverless
Anurag Saran
 
PDF
Serverless cat detector workshop - cloudyna 2017 (16.12.2017)
Paweł Pikuła
 
PPTX
Aws serverless architecture
genesesoftware
 
PDF
Who needs containers in a serverless world
Matthias Luebken
 
PDF
locize tech talk
Adriano Raiano
 
PDF
AWS Lambda
Scott Leberknight
 
PDF
DCEU 18: Docker Containers in a Serverless World
Docker, Inc.
 
PDF
A 60-mn tour of AWS compute (March 2016)
Julien SIMON
 
PDF
Making Service Deployments to AWS a breeze with Nova
Gregor Heine
 
PPTX
Serverless computing
Dmitriy Ivanov
 
PDF
Serverless Architecture - A Gentle Overview
CodeOps Technologies LLP
 
PDF
Building Serverless APIs (January 2017)
Julien SIMON
 
PDF
Building serverless apps with Node.js
Julien SIMON
 
PDF
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
VMware Tanzu
 
PPTX
Lambda Architecture in Practice
Navneet kumar
 
PDF
Serverless OCR for NASA EVA: AWS Meetup DC 2017-12-12
Chris Shenton
 
PDF
Serverless Optical Character Recognition in support of Astronaut Safety AWS M...
Chris Shenton
 
PDF
Serverless Computing with AWS
TransferWiseSG
 
PDF
Deploying Serverless Cloud Optical Character Recognition in Support of NASA A...
Chris Shenton
 
PDF
Building and running Spring Cloud-based microservices on AWS ECS
Joris Kuipers
 
State of serverless
Anurag Saran
 
Serverless cat detector workshop - cloudyna 2017 (16.12.2017)
Paweł Pikuła
 
Aws serverless architecture
genesesoftware
 
Who needs containers in a serverless world
Matthias Luebken
 
locize tech talk
Adriano Raiano
 
AWS Lambda
Scott Leberknight
 
DCEU 18: Docker Containers in a Serverless World
Docker, Inc.
 
A 60-mn tour of AWS compute (March 2016)
Julien SIMON
 
Making Service Deployments to AWS a breeze with Nova
Gregor Heine
 
Serverless computing
Dmitriy Ivanov
 
Serverless Architecture - A Gentle Overview
CodeOps Technologies LLP
 
Building Serverless APIs (January 2017)
Julien SIMON
 
Building serverless apps with Node.js
Julien SIMON
 
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
VMware Tanzu
 
Lambda Architecture in Practice
Navneet kumar
 
Serverless OCR for NASA EVA: AWS Meetup DC 2017-12-12
Chris Shenton
 
Serverless Optical Character Recognition in support of Astronaut Safety AWS M...
Chris Shenton
 
Serverless Computing with AWS
TransferWiseSG
 
Deploying Serverless Cloud Optical Character Recognition in Support of NASA A...
Chris Shenton
 
Building and running Spring Cloud-based microservices on AWS ECS
Joris Kuipers
 
Ad

Recently uploaded (20)

PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PDF
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
Tally software_Introduction_Presentation
AditiBansal54083
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Ad

Serverless haskell

  • 2. Motivation ● AWS Lambda and the Serverless Framework make it easy to write small functions and deploy them to the cloud… ● … but not in Haskell ● Aim: to make it as easy to do serverless programming in Haskell as it is in NodeJS or Python ●
  • 3. What we did ● Serverless Haskell ● Developed over a 3 day Hackathon at SEEK in December 2017 ● Consists of ○ A Serverless plugin ○ A Haskell library
  • 4. Serverless plugin ● Provides a NodeJS wrapper that spawns your Haskell executable ● Hooks up pipes for input, output and logging ● At the moment it will spawn a new exe on each invocation ● Future plan: keep the exe running so that it can handle multiple invocations
  • 5. Haskell library lambdaMain :: (Aeson.FromJSON event, Aeson.ToJSON res) => (event -> IO res) -- ^ Function to process the event -> IO ()
  • 6. Event types Types for dealing with common Lambda events So far ● SNS ● S3 ● Kinesis ● APIGateway Plan to add more.
  • 7. Alternative events ● Compose handlers for different types of events
  • 8. Embedded events ● Some event types (e.g. SNS, APIGateway) have stringified JSON or Base64 embedded within string values in the JSON ● TextValue and Embedded
  • 10. Conclusion ● We have several Lambdas at SEEK using this ● GitHub https://github.com/seek-oss/serverless-haskell ● Also on npm, hackage and stackage ● Future extensions: ○ Allow more than one Lambda invocation ○ Allow multiple functions per project ○ Expand the supported event types ● We would love to get more users ● Pull requests invited