SlideShare a Scribd company logo
1 of 53
Download to read offline
FUNCTIONAL
PROGRAMMING
Practical!
RAILS
RUBYIN
ON
BY
Overview
• What is a Service Layer?
• Railway Oriented Programming
• Creating Beautifully Composable Services
Whatisa
LAYER
?
SERVICE
Whatisa
LAYER
SERVICE
??
A Service is an object
that represents a process.
A process is something you do.
• Typically initiated by the user
• Usually implemented as a dedicated class
• Named with verbs, not nouns
• Examples: SignupUser, PurchaseItem, etc.
SERVICES
SignupUser
Purchase
Item
RAILS
SERVICES
SERVICE
LAYER
Payout
Account
A Service in Rails
SERVICES
CODEEXAMPLE
A Service
Usage in Controller
[Naive] Validations
CODEEXAMPLE
A Service
Usage in Controller
SERVICES
Why a Service useful?
• It encapsulates domain logic
• It thins out your models & controllers
• It ties together cross-cutting concerns
• It makes your Rails app easier to test.
SERVICES
A service layer is about clear separation.
• Rails depends on the service layer
• The service layer knows nothing about Rails


 (routes, controllers, & views)
• Other things could depend on the service layer


 (REST API, web sockets, rake tasks, etc.)
• ActiveRecord is unavoidable, however.
SERVICES
SERVICES
Quick Recap
• A service is an object that represents a process
• Services encapsulate domain logic for specific
processes
• No functional programming (yet).
SERVICES
RAILWAYORIENTED
PROGRAMMING
http://fsharpforfunandprofit.com/posts/recipe-part2/
Services: Another Perspective
A service is a sequence of steps
• They often involve a lot of setup
• Authentication, authorization, validation, etc.
Any one of these steps could fail
• How to handle failure??
RAILWAY
Naive Validations
CODEEXAMPLE(REVISITED)
A Service RAILWAY
Can we do be er?
RAILWAY
What if each step was an
independent method?
How would each step
communicate?
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
RAILWAY
The “Switch”
Input→ Success!
Failure.
fetch_item
DIAGRAM
RAILWAY
The “Switch”
Input→ Success!
Failure
fetch_item
CODEEXAMPLE
RAILWAY
The “Switch”
Input→ Success!
Failure.
fetch_item
CODEEXAMPLE
Failure.
Success!
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
RAILWAY
Our Target Flow
onsuccess
Success!
Failure.
Input→
fetch_item validate
onfailure
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
RAILWAY
Our Target Flow
Success!
Failure.
Input→
create_ordervalidatefetch_item
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
RAILWAY
Our Target Flow
Success!
Failure.
Input→
create_ordervalidatefetch_item
IT’DBECOOLIFWECOULDCONNECTTHESETOGETHER
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
RAILWAY
Connecting Switches
Success!
Failure.
Input→
create_ordervalidatefetch_item
create_ordervalidatefetch_item
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
RAILWAY
Connecting Switches
Success!
Failure.
Input→
create_ordervalidatefetch_item
create_ordervalidatefetch_item
create_ordervalidatefetch_item
Success!
Failure.
RAILWAY
Connecting Switches
CODEEXAMPLES
create_ordervalidatefetch_item
?? ??
RAILWAY
Connecting Switches
CODEEXAMPLES
create_ordervalidatefetch_item
?? ??
HOWDOWECONNECT

ITALLTOGETHER?
?
?
?
?
?
?
?
?
RAILWAY
Answer:
RAILWAY
¯_(ツ)_/¯
Answer:
RAILWAY
¯_(ツ)_/¯
Answer:
ITDOESN’TMATTER!
RAILWAY
¯_(ツ)_/¯
Answer:
ITDOESN’TMATTER!
:D
RAILWAY
¯_(ツ)_/¯
Answer:
ITDOESN’TMATTER!
:D
(actual answer: monads)
There’s a gem for that!
Doesn’t matter.
RAILWAY
github.com/mindeavor/solid_use_case
There’s a gem for that!
Don’t worry.
Handling failures?
RAILWAY
What about
github.com/mindeavor/solid_use_case
Quick Recap
• Split steps into methods
• Return a success or failure in each one
• Elegant (with gem) error handling!
• Steps can be tested independently
RAILWAY
COMPOSINGSERVICES
FORMAXIMUMCOOLNESS
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
COMPOSE
Remember This?
Success!
Failure
Input→
create_ordervalidatefetch_item
create_ordervalidatefetch_item
create_ordervalidatefetch_item
Success!
Failure
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
COMPOSE
Input→ Success!
Failure
create_ordervalidatefetch_item
What if we treat it like a single thing…
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
COMPOSE
Input→ Success!
FailurePurchaseItem
What if we treat it like a single thing…
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
COMPOSE
Input→
PurchaseItem Success!
Failure
What if we treat it like a single thing…
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
COMPOSE
…and then connect it to other things??
Input→
PurchaseItem
Success!
Failure
Source: http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
COMPOSE
Input→
PurchaseItem EmailReceipt
Success!
Failure
…and then connect it to other things??
Service Composition
CODEEXAMPLE
COMPOSE
Service Composition
CODEEXAMPLE
Another
Service!
COMPOSE
Service Composition
CODEEXAMPLE
Another
Service!
COMPOSE
Recap
• We can compose services like we can steps
(in fact we can compose anything that returns our success or failure)
• Functional programming rocks!
COMPOSE
Conclusion
• Service layers are great for apps more complex
than CRUD
• Railway oriented programming is great for
seamless error handling
• Functional programming gives us composable
services!
In the end,
don’t take my word for it.
TRY ITYOURSELF!
Thanks!
H
urrah!
END.
THE
BY
- Gilbert (@mindeavor)
Further Reading
• http://martinfowler.com/eaaCatalog/serviceLayer.html
• https://gist.github.com/blaix/5764401
• http://fsharpforfunandprofit.com/posts/recipe-part2/
• The gem: https://github.com/mindeavor/solid_use_case

More Related Content

What's hot

OWASP Top 10 - Day 1 - A1 injection attacks
OWASP Top 10 - Day 1 - A1 injection attacksOWASP Top 10 - Day 1 - A1 injection attacks
OWASP Top 10 - Day 1 - A1 injection attacksMohamed Talaat
 
Lie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application FirewallsLie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application FirewallsIvan Novikov
 
Conflicting Website Signals & Confused Search Engines - Rachel Costello, Tech...
Conflicting Website Signals & Confused Search Engines - Rachel Costello, Tech...Conflicting Website Signals & Confused Search Engines - Rachel Costello, Tech...
Conflicting Website Signals & Confused Search Engines - Rachel Costello, Tech...Rachel Costello
 
How to Product Manage a Marketplace Business by Uber PM
How to Product Manage a Marketplace Business by Uber PMHow to Product Manage a Marketplace Business by Uber PM
How to Product Manage a Marketplace Business by Uber PMProduct School
 
Managing Conflicting Stakeholders by Deliveroo Sr Product Manager (1).pdf
Managing Conflicting Stakeholders by Deliveroo Sr Product Manager (1).pdfManaging Conflicting Stakeholders by Deliveroo Sr Product Manager (1).pdf
Managing Conflicting Stakeholders by Deliveroo Sr Product Manager (1).pdfProduct School
 
[CXL Live 16] Optimizing Retention - The Silent Killer and King of Growth by ...
[CXL Live 16] Optimizing Retention - The Silent Killer and King of Growth by ...[CXL Live 16] Optimizing Retention - The Silent Killer and King of Growth by ...
[CXL Live 16] Optimizing Retention - The Silent Killer and King of Growth by ...CXL
 
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web TechnologiesOWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web TechnologiesFrans Rosén
 
How to steal and modify data using Business Logic flaws - Insecure Direct Obj...
How to steal and modify data using Business Logic flaws - Insecure Direct Obj...How to steal and modify data using Business Logic flaws - Insecure Direct Obj...
How to steal and modify data using Business Logic flaws - Insecure Direct Obj...Frans Rosén
 
Comparison between CBAP and CPRE v2.0
Comparison between CBAP and CPRE v2.0Comparison between CBAP and CPRE v2.0
Comparison between CBAP and CPRE v2.0LN Mishra CBAP
 
SSRF For Bug Bounties
SSRF For Bug BountiesSSRF For Bug Bounties
SSRF For Bug BountiesOWASP Nagpur
 
Growth Hacking Guide - Mindset, Framework and Tools
Growth Hacking Guide - Mindset, Framework and ToolsGrowth Hacking Guide - Mindset, Framework and Tools
Growth Hacking Guide - Mindset, Framework and ToolsDavid Arnoux . Growth
 
OWASP Poland Day 2018 - Frans Rosen - Attacking modern web technologies
OWASP Poland Day 2018 - Frans Rosen - Attacking modern web technologiesOWASP Poland Day 2018 - Frans Rosen - Attacking modern web technologies
OWASP Poland Day 2018 - Frans Rosen - Attacking modern web technologiesOWASP
 
Driving Value Creation with A/B Testing & OKR
Driving Value Creation with A/B Testing & OKRDriving Value Creation with A/B Testing & OKR
Driving Value Creation with A/B Testing & OKRProduct School
 
How to Nail the Customer Problem Statement by Amazon Sr PM
How to Nail the Customer Problem Statement by Amazon Sr PMHow to Nail the Customer Problem Statement by Amazon Sr PM
How to Nail the Customer Problem Statement by Amazon Sr PMProduct School
 
Customer Centric & Hypothesis Driven Innovation by Cruise VP of Product Engin...
Customer Centric & Hypothesis Driven Innovation by Cruise VP of Product Engin...Customer Centric & Hypothesis Driven Innovation by Cruise VP of Product Engin...
Customer Centric & Hypothesis Driven Innovation by Cruise VP of Product Engin...Product School
 
Dangling DNS records takeover at scale
Dangling DNS records takeover at scaleDangling DNS records takeover at scale
Dangling DNS records takeover at scaleChandrapal Badshah
 
Expanding SaaS Funnels with Product-Led Growth
Expanding SaaS Funnels with Product-Led GrowthExpanding SaaS Funnels with Product-Led Growth
Expanding SaaS Funnels with Product-Led GrowthLucas Neo
 
Startup Metrics for Pirates (FounderX, May 2016)
Startup Metrics for Pirates (FounderX, May 2016)Startup Metrics for Pirates (FounderX, May 2016)
Startup Metrics for Pirates (FounderX, May 2016)Dave McClure
 
Claves SEO para Ecommerce #RMC22
Claves SEO para Ecommerce  #RMC22Claves SEO para Ecommerce  #RMC22
Claves SEO para Ecommerce #RMC22MJ Cachón Yáñez
 

What's hot (20)

OWASP Top 10 - Day 1 - A1 injection attacks
OWASP Top 10 - Day 1 - A1 injection attacksOWASP Top 10 - Day 1 - A1 injection attacks
OWASP Top 10 - Day 1 - A1 injection attacks
 
Lie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application FirewallsLie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application Firewalls
 
Product Discovery
Product DiscoveryProduct Discovery
Product Discovery
 
Conflicting Website Signals & Confused Search Engines - Rachel Costello, Tech...
Conflicting Website Signals & Confused Search Engines - Rachel Costello, Tech...Conflicting Website Signals & Confused Search Engines - Rachel Costello, Tech...
Conflicting Website Signals & Confused Search Engines - Rachel Costello, Tech...
 
How to Product Manage a Marketplace Business by Uber PM
How to Product Manage a Marketplace Business by Uber PMHow to Product Manage a Marketplace Business by Uber PM
How to Product Manage a Marketplace Business by Uber PM
 
Managing Conflicting Stakeholders by Deliveroo Sr Product Manager (1).pdf
Managing Conflicting Stakeholders by Deliveroo Sr Product Manager (1).pdfManaging Conflicting Stakeholders by Deliveroo Sr Product Manager (1).pdf
Managing Conflicting Stakeholders by Deliveroo Sr Product Manager (1).pdf
 
[CXL Live 16] Optimizing Retention - The Silent Killer and King of Growth by ...
[CXL Live 16] Optimizing Retention - The Silent Killer and King of Growth by ...[CXL Live 16] Optimizing Retention - The Silent Killer and King of Growth by ...
[CXL Live 16] Optimizing Retention - The Silent Killer and King of Growth by ...
 
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web TechnologiesOWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
 
How to steal and modify data using Business Logic flaws - Insecure Direct Obj...
How to steal and modify data using Business Logic flaws - Insecure Direct Obj...How to steal and modify data using Business Logic flaws - Insecure Direct Obj...
How to steal and modify data using Business Logic flaws - Insecure Direct Obj...
 
Comparison between CBAP and CPRE v2.0
Comparison between CBAP and CPRE v2.0Comparison between CBAP and CPRE v2.0
Comparison between CBAP and CPRE v2.0
 
SSRF For Bug Bounties
SSRF For Bug BountiesSSRF For Bug Bounties
SSRF For Bug Bounties
 
Growth Hacking Guide - Mindset, Framework and Tools
Growth Hacking Guide - Mindset, Framework and ToolsGrowth Hacking Guide - Mindset, Framework and Tools
Growth Hacking Guide - Mindset, Framework and Tools
 
OWASP Poland Day 2018 - Frans Rosen - Attacking modern web technologies
OWASP Poland Day 2018 - Frans Rosen - Attacking modern web technologiesOWASP Poland Day 2018 - Frans Rosen - Attacking modern web technologies
OWASP Poland Day 2018 - Frans Rosen - Attacking modern web technologies
 
Driving Value Creation with A/B Testing & OKR
Driving Value Creation with A/B Testing & OKRDriving Value Creation with A/B Testing & OKR
Driving Value Creation with A/B Testing & OKR
 
How to Nail the Customer Problem Statement by Amazon Sr PM
How to Nail the Customer Problem Statement by Amazon Sr PMHow to Nail the Customer Problem Statement by Amazon Sr PM
How to Nail the Customer Problem Statement by Amazon Sr PM
 
Customer Centric & Hypothesis Driven Innovation by Cruise VP of Product Engin...
Customer Centric & Hypothesis Driven Innovation by Cruise VP of Product Engin...Customer Centric & Hypothesis Driven Innovation by Cruise VP of Product Engin...
Customer Centric & Hypothesis Driven Innovation by Cruise VP of Product Engin...
 
Dangling DNS records takeover at scale
Dangling DNS records takeover at scaleDangling DNS records takeover at scale
Dangling DNS records takeover at scale
 
Expanding SaaS Funnels with Product-Led Growth
Expanding SaaS Funnels with Product-Led GrowthExpanding SaaS Funnels with Product-Led Growth
Expanding SaaS Funnels with Product-Led Growth
 
Startup Metrics for Pirates (FounderX, May 2016)
Startup Metrics for Pirates (FounderX, May 2016)Startup Metrics for Pirates (FounderX, May 2016)
Startup Metrics for Pirates (FounderX, May 2016)
 
Claves SEO para Ecommerce #RMC22
Claves SEO para Ecommerce  #RMC22Claves SEO para Ecommerce  #RMC22
Claves SEO para Ecommerce #RMC22
 

Viewers also liked

Railway Oriented Programming
Railway Oriented ProgrammingRailway Oriented Programming
Railway Oriented ProgrammingScott Wlaschin
 
Bond graphs and genetic algorithms for design and optimization of active dyna...
Bond graphs and genetic algorithms for design and optimization of active dyna...Bond graphs and genetic algorithms for design and optimization of active dyna...
Bond graphs and genetic algorithms for design and optimization of active dyna...eSAT Journals
 
Ladder logic fundamentals plc tutorial
Ladder logic fundamentals plc tutorialLadder logic fundamentals plc tutorial
Ladder logic fundamentals plc tutorialMavuri Malleswara Rao
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languagessebrown
 
Introduction to Programming Languages
Introduction to Programming LanguagesIntroduction to Programming Languages
Introduction to Programming Languageseducationfront
 
Bond graphs and genetic algorithms for design and
Bond graphs and genetic algorithms for design andBond graphs and genetic algorithms for design and
Bond graphs and genetic algorithms for design andeSAT Publishing House
 
Programming languages
Programming languagesProgramming languages
Programming languagesAkash Varaiya
 
C Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointC Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointJavaTpoint.Com
 
Programming languages
Programming languagesProgramming languages
Programming languagesAsmasum
 
INTRODUCTION TO C PROGRAMMING
INTRODUCTION TO C PROGRAMMINGINTRODUCTION TO C PROGRAMMING
INTRODUCTION TO C PROGRAMMINGAbhishek Dwivedi
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
Functional Programming Patterns (NDC London 2014)
Functional Programming Patterns (NDC London 2014)Functional Programming Patterns (NDC London 2014)
Functional Programming Patterns (NDC London 2014)Scott Wlaschin
 
Basics of C programming
Basics of C programmingBasics of C programming
Basics of C programmingavikdhupar
 

Viewers also liked (15)

Railway Oriented Programming
Railway Oriented ProgrammingRailway Oriented Programming
Railway Oriented Programming
 
Bond graphs and genetic algorithms for design and optimization of active dyna...
Bond graphs and genetic algorithms for design and optimization of active dyna...Bond graphs and genetic algorithms for design and optimization of active dyna...
Bond graphs and genetic algorithms for design and optimization of active dyna...
 
Ladder logic fundamentals plc tutorial
Ladder logic fundamentals plc tutorialLadder logic fundamentals plc tutorial
Ladder logic fundamentals plc tutorial
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languages
 
PHP Web Programming
PHP Web ProgrammingPHP Web Programming
PHP Web Programming
 
Introduction to Programming Languages
Introduction to Programming LanguagesIntroduction to Programming Languages
Introduction to Programming Languages
 
Bond graphs and genetic algorithms for design and
Bond graphs and genetic algorithms for design andBond graphs and genetic algorithms for design and
Bond graphs and genetic algorithms for design and
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Introduction to C Programming
Introduction to C ProgrammingIntroduction to C Programming
Introduction to C Programming
 
C Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointC Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpoint
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
INTRODUCTION TO C PROGRAMMING
INTRODUCTION TO C PROGRAMMINGINTRODUCTION TO C PROGRAMMING
INTRODUCTION TO C PROGRAMMING
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
Functional Programming Patterns (NDC London 2014)
Functional Programming Patterns (NDC London 2014)Functional Programming Patterns (NDC London 2014)
Functional Programming Patterns (NDC London 2014)
 
Basics of C programming
Basics of C programmingBasics of C programming
Basics of C programming
 

Similar to FUNCTIONAL PROGRAMMING SERVICES

How to Build a Big Data Application: Serverless Edition
How to Build a Big Data Application: Serverless EditionHow to Build a Big Data Application: Serverless Edition
How to Build a Big Data Application: Serverless EditionLecole Cole
 
How to Build a Big Data Application: Serverless Edition
How to Build a Big Data Application: Serverless EditionHow to Build a Big Data Application: Serverless Edition
How to Build a Big Data Application: Serverless Editionecobold
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples Yochay Kiriaty
 
Rails request & middlewares
Rails request & middlewaresRails request & middlewares
Rails request & middlewaresSantosh Wadghule
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cachecornelia davis
 
Single page applications - TernopilJS #2
Single page applications - TernopilJS #2Single page applications - TernopilJS #2
Single page applications - TernopilJS #2Andriy Deren'
 
JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)Hendrik Ebbers
 
The Next Five Years of Rails
The Next Five Years of RailsThe Next Five Years of Rails
The Next Five Years of RailsAlex Mercer
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)Sascha Wenninger
 
Managing the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS LambdaManaging the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS LambdaAmazon Web Services
 
xConf-2022-api-gateway-service-mesh.pdf
xConf-2022-api-gateway-service-mesh.pdfxConf-2022-api-gateway-service-mesh.pdf
xConf-2022-api-gateway-service-mesh.pdfWesley Reisz
 
Plataforma distribuída de Microserviços ou, como a Olist funciona
Plataforma distribuída de Microserviços ou, como a Olist funcionaPlataforma distribuída de Microserviços ou, como a Olist funciona
Plataforma distribuída de Microserviços ou, como a Olist funcionaOsvaldo Santana Neto
 
From Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical DebtFrom Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical DebtTechWell
 
Best Practices for API Design to Keep Your App Secure, Scalable & Efficient
Best Practices for API Design to Keep Your App Secure, Scalable & EfficientBest Practices for API Design to Keep Your App Secure, Scalable & Efficient
Best Practices for API Design to Keep Your App Secure, Scalable & EfficientNordic APIs
 
アドテク×Scala @Dynalyst
アドテク×Scala @Dynalystアドテク×Scala @Dynalyst
アドテク×Scala @DynalystSangwon Han
 

Similar to FUNCTIONAL PROGRAMMING SERVICES (20)

How to Build a Big Data Application: Serverless Edition
How to Build a Big Data Application: Serverless EditionHow to Build a Big Data Application: Serverless Edition
How to Build a Big Data Application: Serverless Edition
 
How to Build a Big Data Application: Serverless Edition
How to Build a Big Data Application: Serverless EditionHow to Build a Big Data Application: Serverless Edition
How to Build a Big Data Application: Serverless Edition
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
Beyond The Rails Way
Beyond The Rails WayBeyond The Rails Way
Beyond The Rails Way
 
Rails request & middlewares
Rails request & middlewaresRails request & middlewares
Rails request & middlewares
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cache
 
Aws steps
Aws stepsAws steps
Aws steps
 
Single page applications - TernopilJS #2
Single page applications - TernopilJS #2Single page applications - TernopilJS #2
Single page applications - TernopilJS #2
 
JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)
 
The Next Five Years of Rails
The Next Five Years of RailsThe Next Five Years of Rails
The Next Five Years of Rails
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
 
Managing the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS LambdaManaging the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS Lambda
 
xConf-2022-api-gateway-service-mesh.pdf
xConf-2022-api-gateway-service-mesh.pdfxConf-2022-api-gateway-service-mesh.pdf
xConf-2022-api-gateway-service-mesh.pdf
 
Plataforma distribuída de Microserviços ou, como a Olist funciona
Plataforma distribuída de Microserviços ou, como a Olist funcionaPlataforma distribuída de Microserviços ou, como a Olist funciona
Plataforma distribuída de Microserviços ou, como a Olist funciona
 
From Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical DebtFrom Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical Debt
 
Serverless Microservices
Serverless MicroservicesServerless Microservices
Serverless Microservices
 
Learning Rails
Learning RailsLearning Rails
Learning Rails
 
Intro to Ruby on Rails
Intro to Ruby on RailsIntro to Ruby on Rails
Intro to Ruby on Rails
 
Best Practices for API Design to Keep Your App Secure, Scalable & Efficient
Best Practices for API Design to Keep Your App Secure, Scalable & EfficientBest Practices for API Design to Keep Your App Secure, Scalable & Efficient
Best Practices for API Design to Keep Your App Secure, Scalable & Efficient
 
アドテク×Scala @Dynalyst
アドテク×Scala @Dynalystアドテク×Scala @Dynalyst
アドテク×Scala @Dynalyst
 

Recently uploaded

eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 

Recently uploaded (20)

eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 

FUNCTIONAL PROGRAMMING SERVICES