SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Demo the reactive jargons
Mushtaq Ahmed
ThoughtWorks
@mushtaqA
getProductPage
getModule1
getModule2
getPricing
getProductSpec
square(a: Int): Intsquares(a: Seq[Int]): Seq[Int]
Demo
● Async and NonBlocking mean different things
○ Async is about API
○ NonBlocking is about Implementation
● Async API can be implemented for Blocking calls!
● For NonBlocking calls, Sync API is not possible!
○ Macros and CPS transformations can be used to fake it
Blocking Non-blocking
Sync square(a: Int): Int XXX
Async square(a: Int): Future[Int] square(a: Int): Future[Int]
API
Implementation
Demo
● Blocking IO is contagious
○ ExecutionContext helps to quarantine it
● Separate ExecutionContext for Blocking and
NonBlocking IO
○ Like different speed lanes
Demo
● Error handling in Future is a bit difficult for bulk
operation
● Observable is a nicer alternative
○ Yet to explore: Retry, Timeout etc
● Observable API does not support backpressure
○ Be Careful not to introduce memory leaks
Single Multiple
Sync square(a: Int): Int squares(a: Seq[Int]): Seq[Int]
Async square(a: Int): Future[Int]
squares(a: Seq[Int]): Future[Seq
[Int]]
squares(a: Seq[Int]): Observable[Int]
Observable[Int] == Future[Iterable[Future[Int]]]
The code for demo is here:
https://github.com/mushtaq/pune-scala-symposium
● We like to teach Scala
● We are planning to offer a FREE training in Pune!
○ Screening based on coding test ;)
● 4 full day sessions
○ Two consecutive Friday-Saturdays
● Sometime in May or June
○ Will announce it via @punescala/Pune Scala meetup group
Thank you

Contenu connexe

Tendances

steppy: lightweight, open source, Python library for fast and reproducible ex...
steppy: lightweight, open source, Python library for fast and reproducible ex...steppy: lightweight, open source, Python library for fast and reproducible ex...
steppy: lightweight, open source, Python library for fast and reproducible ex...neptune.ml
 
Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016
Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016
Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016MLconf
 
Julia language: inside the corporation
Julia language: inside the corporationJulia language: inside the corporation
Julia language: inside the corporationAndre Pemmelaar
 
Designing and coding for cloud-native applications using Python, Harjinder Mi...
Designing and coding for cloud-native applications using Python, Harjinder Mi...Designing and coding for cloud-native applications using Python, Harjinder Mi...
Designing and coding for cloud-native applications using Python, Harjinder Mi...Pôle Systematic Paris-Region
 
Unite 2017 - Reactive Programming - Pieter Nijs
Unite 2017 - Reactive Programming - Pieter NijsUnite 2017 - Reactive Programming - Pieter Nijs
Unite 2017 - Reactive Programming - Pieter NijsN Core
 
Denys Kovalenko "Scaling Data Science at Bolt"
Denys Kovalenko "Scaling Data Science at Bolt"Denys Kovalenko "Scaling Data Science at Bolt"
Denys Kovalenko "Scaling Data Science at Bolt"Fwdays
 
Machine Learning for .NET Developers - ADC21
Machine Learning for .NET Developers - ADC21Machine Learning for .NET Developers - ADC21
Machine Learning for .NET Developers - ADC21Gülden Bilgütay
 
PyData Global: Thrifty Machine Learning
PyData Global: Thrifty Machine LearningPyData Global: Thrifty Machine Learning
PyData Global: Thrifty Machine LearningRebecca Bilbro
 
Automatic image moderation in classifieds
Automatic image moderation in classifiedsAutomatic image moderation in classifieds
Automatic image moderation in classifiedsJaroslaw Szymczak
 
NLP Transfer learning platform
NLP Transfer learning platformNLP Transfer learning platform
NLP Transfer learning platformmanusuryavansh
 
Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...
Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...
Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...Caio Moreno
 
Computer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I💻 Anton Gerdelan
 
Asyncio : Final frontier in python
Asyncio : Final frontier in pythonAsyncio : Final frontier in python
Asyncio : Final frontier in pythonAnkit Mittal
 
Clojure: Programming self-optimizing webapps in Lisp
Clojure: Programming self-optimizing webapps in LispClojure: Programming self-optimizing webapps in Lisp
Clojure: Programming self-optimizing webapps in LispStefan Richter
 
On being a professional software developer
On being a professional software developerOn being a professional software developer
On being a professional software developerAnton Kirillov
 
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify Dataconomy Media
 
From Python to smartphones: neural nets @ Saint-Gobain, François Sausset
From Python to smartphones: neural nets @ Saint-Gobain, François SaussetFrom Python to smartphones: neural nets @ Saint-Gobain, François Sausset
From Python to smartphones: neural nets @ Saint-Gobain, François SaussetPôle Systematic Paris-Region
 

Tendances (20)

steppy: lightweight, open source, Python library for fast and reproducible ex...
steppy: lightweight, open source, Python library for fast and reproducible ex...steppy: lightweight, open source, Python library for fast and reproducible ex...
steppy: lightweight, open source, Python library for fast and reproducible ex...
 
Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016
Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016
Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016
 
Julia language: inside the corporation
Julia language: inside the corporationJulia language: inside the corporation
Julia language: inside the corporation
 
Designing and coding for cloud-native applications using Python, Harjinder Mi...
Designing and coding for cloud-native applications using Python, Harjinder Mi...Designing and coding for cloud-native applications using Python, Harjinder Mi...
Designing and coding for cloud-native applications using Python, Harjinder Mi...
 
Unite 2017 - Reactive Programming - Pieter Nijs
Unite 2017 - Reactive Programming - Pieter NijsUnite 2017 - Reactive Programming - Pieter Nijs
Unite 2017 - Reactive Programming - Pieter Nijs
 
Denys Kovalenko "Scaling Data Science at Bolt"
Denys Kovalenko "Scaling Data Science at Bolt"Denys Kovalenko "Scaling Data Science at Bolt"
Denys Kovalenko "Scaling Data Science at Bolt"
 
Machine Learning for .NET Developers - ADC21
Machine Learning for .NET Developers - ADC21Machine Learning for .NET Developers - ADC21
Machine Learning for .NET Developers - ADC21
 
PyData Global: Thrifty Machine Learning
PyData Global: Thrifty Machine LearningPyData Global: Thrifty Machine Learning
PyData Global: Thrifty Machine Learning
 
Automatic image moderation in classifieds
Automatic image moderation in classifiedsAutomatic image moderation in classifieds
Automatic image moderation in classifieds
 
NLP Transfer learning platform
NLP Transfer learning platformNLP Transfer learning platform
NLP Transfer learning platform
 
Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...
Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...
Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...
 
Computer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I
 
Asyncio : Final frontier in python
Asyncio : Final frontier in pythonAsyncio : Final frontier in python
Asyncio : Final frontier in python
 
Clojure: Programming self-optimizing webapps in Lisp
Clojure: Programming self-optimizing webapps in LispClojure: Programming self-optimizing webapps in Lisp
Clojure: Programming self-optimizing webapps in Lisp
 
On being a professional software developer
On being a professional software developerOn being a professional software developer
On being a professional software developer
 
AutoML lectures (ACDL 2019)
AutoML lectures (ACDL 2019)AutoML lectures (ACDL 2019)
AutoML lectures (ACDL 2019)
 
Why more than half of ML models don't make it to production
Why more than half of ML models don't make it to productionWhy more than half of ML models don't make it to production
Why more than half of ML models don't make it to production
 
Apostolos Panagiotopoulos CV - 2017
Apostolos Panagiotopoulos CV - 2017Apostolos Panagiotopoulos CV - 2017
Apostolos Panagiotopoulos CV - 2017
 
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
 
From Python to smartphones: neural nets @ Saint-Gobain, François Sausset
From Python to smartphones: neural nets @ Saint-Gobain, François SaussetFrom Python to smartphones: neural nets @ Saint-Gobain, François Sausset
From Python to smartphones: neural nets @ Saint-Gobain, François Sausset
 

En vedette

Liderança compartilhada - "pare de gerenciar pessoas"
Liderança compartilhada - "pare de gerenciar pessoas"Liderança compartilhada - "pare de gerenciar pessoas"
Liderança compartilhada - "pare de gerenciar pessoas"Thoughtworks
 
Simplify Then Add Lightness
Simplify Then Add LightnessSimplify Then Add Lightness
Simplify Then Add LightnessThoughtworks
 
Olhares Diversos, Oportunidades Iguais | ThoughtWorks na HSM
Olhares Diversos, Oportunidades Iguais | ThoughtWorks na HSMOlhares Diversos, Oportunidades Iguais | ThoughtWorks na HSM
Olhares Diversos, Oportunidades Iguais | ThoughtWorks na HSMThoughtworks
 
Working as an agile Experience Designer
Working as an agile Experience DesignerWorking as an agile Experience Designer
Working as an agile Experience DesignerThoughtworks
 
XConf Coimbatore 2016 - Through the eyes of an Analyst
XConf Coimbatore 2016 - Through the eyes of an AnalystXConf Coimbatore 2016 - Through the eyes of an Analyst
XConf Coimbatore 2016 - Through the eyes of an AnalystThoughtworks
 
XConf Coimbatore 2016 - Being a Developer Consultant
XConf Coimbatore 2016 - Being a Developer ConsultantXConf Coimbatore 2016 - Being a Developer Consultant
XConf Coimbatore 2016 - Being a Developer ConsultantThoughtworks
 
Design Tips for the Non-Designer
Design Tips for the Non-DesignerDesign Tips for the Non-Designer
Design Tips for the Non-DesignerThoughtworks
 
Recrutamento Ágil: Muito Além do Software
Recrutamento Ágil: Muito Além do SoftwareRecrutamento Ágil: Muito Além do Software
Recrutamento Ágil: Muito Além do SoftwareThoughtworks
 
Agile Data Insights: Decisões de Negócios Guiadas por Dados
Agile Data Insights: Decisões de Negócios Guiadas por DadosAgile Data Insights: Decisões de Negócios Guiadas por Dados
Agile Data Insights: Decisões de Negócios Guiadas por DadosThoughtworks
 
XConf Coimbatore 2016 - From Epics to Showcases
XConf Coimbatore 2016 - From Epics to ShowcasesXConf Coimbatore 2016 - From Epics to Showcases
XConf Coimbatore 2016 - From Epics to ShowcasesThoughtworks
 
XConf Coimbatore 2016 - Microservices Demystified
XConf Coimbatore 2016 - Microservices DemystifiedXConf Coimbatore 2016 - Microservices Demystified
XConf Coimbatore 2016 - Microservices DemystifiedThoughtworks
 
ThoughtWorks Digital - Estratégia de Dados
ThoughtWorks Digital - Estratégia de DadosThoughtWorks Digital - Estratégia de Dados
ThoughtWorks Digital - Estratégia de DadosThoughtworks
 
Platforms for growth retail executive breakfast: Connecting digital strategy ...
Platforms for growth retail executive breakfast: Connecting digital strategy ...Platforms for growth retail executive breakfast: Connecting digital strategy ...
Platforms for growth retail executive breakfast: Connecting digital strategy ...Thoughtworks
 
Anti-Padrões de Integração Contínua
Anti-Padrões de Integração ContínuaAnti-Padrões de Integração Contínua
Anti-Padrões de Integração ContínuaThoughtworks
 
#DigitalNudge - Tendências entre Psicologia Cognitiva, Behavioral Economics e...
#DigitalNudge - Tendências entre Psicologia Cognitiva, Behavioral Economics e...#DigitalNudge - Tendências entre Psicologia Cognitiva, Behavioral Economics e...
#DigitalNudge - Tendências entre Psicologia Cognitiva, Behavioral Economics e...Thoughtworks
 
Financial Services Executive Lunch: Finding The Missing Millennials
Financial Services Executive Lunch: Finding The Missing MillennialsFinancial Services Executive Lunch: Finding The Missing Millennials
Financial Services Executive Lunch: Finding The Missing MillennialsThoughtworks
 
Data Strategy - Enabling the Data-Guided Enterprise
Data Strategy - Enabling the Data-Guided EnterpriseData Strategy - Enabling the Data-Guided Enterprise
Data Strategy - Enabling the Data-Guided EnterpriseThoughtworks
 
Introduction to User Experience - Mike Biggs
Introduction to User Experience - Mike BiggsIntroduction to User Experience - Mike Biggs
Introduction to User Experience - Mike BiggsThoughtworks
 
Strategy to Execution by Jonny Schneider - ThoughtWorks
Strategy to Execution by Jonny Schneider - ThoughtWorksStrategy to Execution by Jonny Schneider - ThoughtWorks
Strategy to Execution by Jonny Schneider - ThoughtWorksThoughtworks
 
ThoughtWorks Retail and Onefinestay - Business Model Innovation - Retail Week...
ThoughtWorks Retail and Onefinestay - Business Model Innovation - Retail Week...ThoughtWorks Retail and Onefinestay - Business Model Innovation - Retail Week...
ThoughtWorks Retail and Onefinestay - Business Model Innovation - Retail Week...Thoughtworks
 

En vedette (20)

Liderança compartilhada - "pare de gerenciar pessoas"
Liderança compartilhada - "pare de gerenciar pessoas"Liderança compartilhada - "pare de gerenciar pessoas"
Liderança compartilhada - "pare de gerenciar pessoas"
 
Simplify Then Add Lightness
Simplify Then Add LightnessSimplify Then Add Lightness
Simplify Then Add Lightness
 
Olhares Diversos, Oportunidades Iguais | ThoughtWorks na HSM
Olhares Diversos, Oportunidades Iguais | ThoughtWorks na HSMOlhares Diversos, Oportunidades Iguais | ThoughtWorks na HSM
Olhares Diversos, Oportunidades Iguais | ThoughtWorks na HSM
 
Working as an agile Experience Designer
Working as an agile Experience DesignerWorking as an agile Experience Designer
Working as an agile Experience Designer
 
XConf Coimbatore 2016 - Through the eyes of an Analyst
XConf Coimbatore 2016 - Through the eyes of an AnalystXConf Coimbatore 2016 - Through the eyes of an Analyst
XConf Coimbatore 2016 - Through the eyes of an Analyst
 
XConf Coimbatore 2016 - Being a Developer Consultant
XConf Coimbatore 2016 - Being a Developer ConsultantXConf Coimbatore 2016 - Being a Developer Consultant
XConf Coimbatore 2016 - Being a Developer Consultant
 
Design Tips for the Non-Designer
Design Tips for the Non-DesignerDesign Tips for the Non-Designer
Design Tips for the Non-Designer
 
Recrutamento Ágil: Muito Além do Software
Recrutamento Ágil: Muito Além do SoftwareRecrutamento Ágil: Muito Além do Software
Recrutamento Ágil: Muito Além do Software
 
Agile Data Insights: Decisões de Negócios Guiadas por Dados
Agile Data Insights: Decisões de Negócios Guiadas por DadosAgile Data Insights: Decisões de Negócios Guiadas por Dados
Agile Data Insights: Decisões de Negócios Guiadas por Dados
 
XConf Coimbatore 2016 - From Epics to Showcases
XConf Coimbatore 2016 - From Epics to ShowcasesXConf Coimbatore 2016 - From Epics to Showcases
XConf Coimbatore 2016 - From Epics to Showcases
 
XConf Coimbatore 2016 - Microservices Demystified
XConf Coimbatore 2016 - Microservices DemystifiedXConf Coimbatore 2016 - Microservices Demystified
XConf Coimbatore 2016 - Microservices Demystified
 
ThoughtWorks Digital - Estratégia de Dados
ThoughtWorks Digital - Estratégia de DadosThoughtWorks Digital - Estratégia de Dados
ThoughtWorks Digital - Estratégia de Dados
 
Platforms for growth retail executive breakfast: Connecting digital strategy ...
Platforms for growth retail executive breakfast: Connecting digital strategy ...Platforms for growth retail executive breakfast: Connecting digital strategy ...
Platforms for growth retail executive breakfast: Connecting digital strategy ...
 
Anti-Padrões de Integração Contínua
Anti-Padrões de Integração ContínuaAnti-Padrões de Integração Contínua
Anti-Padrões de Integração Contínua
 
#DigitalNudge - Tendências entre Psicologia Cognitiva, Behavioral Economics e...
#DigitalNudge - Tendências entre Psicologia Cognitiva, Behavioral Economics e...#DigitalNudge - Tendências entre Psicologia Cognitiva, Behavioral Economics e...
#DigitalNudge - Tendências entre Psicologia Cognitiva, Behavioral Economics e...
 
Financial Services Executive Lunch: Finding The Missing Millennials
Financial Services Executive Lunch: Finding The Missing MillennialsFinancial Services Executive Lunch: Finding The Missing Millennials
Financial Services Executive Lunch: Finding The Missing Millennials
 
Data Strategy - Enabling the Data-Guided Enterprise
Data Strategy - Enabling the Data-Guided EnterpriseData Strategy - Enabling the Data-Guided Enterprise
Data Strategy - Enabling the Data-Guided Enterprise
 
Introduction to User Experience - Mike Biggs
Introduction to User Experience - Mike BiggsIntroduction to User Experience - Mike Biggs
Introduction to User Experience - Mike Biggs
 
Strategy to Execution by Jonny Schneider - ThoughtWorks
Strategy to Execution by Jonny Schneider - ThoughtWorksStrategy to Execution by Jonny Schneider - ThoughtWorks
Strategy to Execution by Jonny Schneider - ThoughtWorks
 
ThoughtWorks Retail and Onefinestay - Business Model Innovation - Retail Week...
ThoughtWorks Retail and Onefinestay - Business Model Innovation - Retail Week...ThoughtWorks Retail and Onefinestay - Business Model Innovation - Retail Week...
ThoughtWorks Retail and Onefinestay - Business Model Innovation - Retail Week...
 

Similaire à Demo the reactive jargons by Mushtaq Ahmed, ThoughtWorks presented at Pune Scala Symposium 2014, ThoughtWorks

Event Driven with LibUV and ZeroMQ
Event Driven with LibUV and ZeroMQEvent Driven with LibUV and ZeroMQ
Event Driven with LibUV and ZeroMQLuke Luo
 
Cilk - An Efficient Multithreaded Runtime System
Cilk - An Efficient Multithreaded Runtime SystemCilk - An Efficient Multithreaded Runtime System
Cilk - An Efficient Multithreaded Runtime SystemShareek Ahamed
 
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]Alex Ershov
 
Summer Internship Project - Remote Render
Summer Internship Project - Remote RenderSummer Internship Project - Remote Render
Summer Internship Project - Remote RenderYen-Kuan Wu
 
Concurrency and Python - PyCon MY 2015
Concurrency and Python - PyCon MY 2015Concurrency and Python - PyCon MY 2015
Concurrency and Python - PyCon MY 2015Boey Pak Cheong
 
Software Architecture Stories
Software Architecture StoriesSoftware Architecture Stories
Software Architecture StoriesESUG
 
Android kotlin coroutines
Android kotlin coroutinesAndroid kotlin coroutines
Android kotlin coroutinesBipin Vayalu
 
GraphQL Meetup Bangkok 4.0
GraphQL Meetup Bangkok 4.0GraphQL Meetup Bangkok 4.0
GraphQL Meetup Bangkok 4.0Tobias Meixner
 
Understanding concurrency
Understanding concurrencyUnderstanding concurrency
Understanding concurrencyAnshul Sharma
 
Algorithm 110801105245-phpapp01-120223065724-phpapp02
Algorithm 110801105245-phpapp01-120223065724-phpapp02Algorithm 110801105245-phpapp01-120223065724-phpapp02
Algorithm 110801105245-phpapp01-120223065724-phpapp02dhruv patel
 
Algorithm 110801105245-phpapp01
Algorithm 110801105245-phpapp01Algorithm 110801105245-phpapp01
Algorithm 110801105245-phpapp01Jay Patel
 
Asynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with NettyAsynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with NettyErsin Er
 
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...Mario Heiderich
 
Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019Matt Turner
 
Tw2010slide2
Tw2010slide2Tw2010slide2
Tw2010slide2s1150036
 
pure-functional-programming.pdf
pure-functional-programming.pdfpure-functional-programming.pdf
pure-functional-programming.pdfPuneetChaturvedi23
 

Similaire à Demo the reactive jargons by Mushtaq Ahmed, ThoughtWorks presented at Pune Scala Symposium 2014, ThoughtWorks (20)

Event Driven with LibUV and ZeroMQ
Event Driven with LibUV and ZeroMQEvent Driven with LibUV and ZeroMQ
Event Driven with LibUV and ZeroMQ
 
Cilk - An Efficient Multithreaded Runtime System
Cilk - An Efficient Multithreaded Runtime SystemCilk - An Efficient Multithreaded Runtime System
Cilk - An Efficient Multithreaded Runtime System
 
Async fun
Async funAsync fun
Async fun
 
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
 
Summer Internship Project - Remote Render
Summer Internship Project - Remote RenderSummer Internship Project - Remote Render
Summer Internship Project - Remote Render
 
Concurrency and Python - PyCon MY 2015
Concurrency and Python - PyCon MY 2015Concurrency and Python - PyCon MY 2015
Concurrency and Python - PyCon MY 2015
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 
Software Architecture Stories
Software Architecture StoriesSoftware Architecture Stories
Software Architecture Stories
 
Android kotlin coroutines
Android kotlin coroutinesAndroid kotlin coroutines
Android kotlin coroutines
 
GraphQL Meetup Bangkok 4.0
GraphQL Meetup Bangkok 4.0GraphQL Meetup Bangkok 4.0
GraphQL Meetup Bangkok 4.0
 
Understanding concurrency
Understanding concurrencyUnderstanding concurrency
Understanding concurrency
 
Introduction to Binary Exploitation
Introduction to Binary Exploitation	Introduction to Binary Exploitation
Introduction to Binary Exploitation
 
Algorithm 110801105245-phpapp01-120223065724-phpapp02
Algorithm 110801105245-phpapp01-120223065724-phpapp02Algorithm 110801105245-phpapp01-120223065724-phpapp02
Algorithm 110801105245-phpapp01-120223065724-phpapp02
 
Algorithm
AlgorithmAlgorithm
Algorithm
 
Algorithm 110801105245-phpapp01
Algorithm 110801105245-phpapp01Algorithm 110801105245-phpapp01
Algorithm 110801105245-phpapp01
 
Asynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with NettyAsynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with Netty
 
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
 
Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019
 
Tw2010slide2
Tw2010slide2Tw2010slide2
Tw2010slide2
 
pure-functional-programming.pdf
pure-functional-programming.pdfpure-functional-programming.pdf
pure-functional-programming.pdf
 

Plus de Thoughtworks

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a ProductThoughtworks
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & DogsThoughtworks
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovationThoughtworks
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teamsThoughtworks
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of InnovationThoughtworks
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer ExperienceThoughtworks
 
When we design together
When we design togetherWhen we design together
When we design togetherThoughtworks
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)Thoughtworks
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloudThoughtworks
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of InnovationThoughtworks
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go liveThoughtworks
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the RubiconThoughtworks
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!Thoughtworks
 
Docker container security
Docker container securityDocker container security
Docker container securityThoughtworks
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unitThoughtworks
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Thoughtworks
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to TuringThoughtworks
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked outThoughtworks
 

Plus de Thoughtworks (20)

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a Product
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & Dogs
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovation
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teams
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of Innovation
 
Dual-Track Agile
Dual-Track AgileDual-Track Agile
Dual-Track Agile
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
When we design together
When we design togetherWhen we design together
When we design together
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloud
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of Innovation
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go live
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the Rubicon
 
Error handling
Error handlingError handling
Error handling
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!
 
Docker container security
Docker container securityDocker container security
Docker container security
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unit
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to Turing
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked out
 

Dernier

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Dernier (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Demo the reactive jargons by Mushtaq Ahmed, ThoughtWorks presented at Pune Scala Symposium 2014, ThoughtWorks

  • 1. Demo the reactive jargons Mushtaq Ahmed ThoughtWorks @mushtaqA
  • 3. square(a: Int): Intsquares(a: Seq[Int]): Seq[Int]
  • 5. ● Async and NonBlocking mean different things ○ Async is about API ○ NonBlocking is about Implementation ● Async API can be implemented for Blocking calls! ● For NonBlocking calls, Sync API is not possible! ○ Macros and CPS transformations can be used to fake it
  • 6. Blocking Non-blocking Sync square(a: Int): Int XXX Async square(a: Int): Future[Int] square(a: Int): Future[Int] API Implementation
  • 8. ● Blocking IO is contagious ○ ExecutionContext helps to quarantine it ● Separate ExecutionContext for Blocking and NonBlocking IO ○ Like different speed lanes
  • 10. ● Error handling in Future is a bit difficult for bulk operation ● Observable is a nicer alternative ○ Yet to explore: Retry, Timeout etc ● Observable API does not support backpressure ○ Be Careful not to introduce memory leaks
  • 11. Single Multiple Sync square(a: Int): Int squares(a: Seq[Int]): Seq[Int] Async square(a: Int): Future[Int] squares(a: Seq[Int]): Future[Seq [Int]] squares(a: Seq[Int]): Observable[Int] Observable[Int] == Future[Iterable[Future[Int]]]
  • 12. The code for demo is here: https://github.com/mushtaq/pune-scala-symposium
  • 13. ● We like to teach Scala ● We are planning to offer a FREE training in Pune! ○ Screening based on coding test ;) ● 4 full day sessions ○ Two consecutive Friday-Saturdays ● Sometime in May or June ○ Will announce it via @punescala/Pune Scala meetup group