I gave this presentation to my coworkers recently. Unfortunately, the animations done translate to PDF so it's a tad sucky, but the main content is there.
Introduction to Akka 2. Explains what Akka's actors are all about and how to utilize them to write scalable and fault-tolerant systems.
Talk given at JavaZone 2012.
Building Reactive Systems with Akka (in Java 8 or Scala)Jonas Bonér
Learn how to build Reactive Systems with Akka. Examples in both Java 8 and Scala.
Abstract:
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand. We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications.
In this talk we will introduce you to Akka and discuss how it can help you deliver on the four key traits of Reactive; Responsive, Resilient, Elastic and Message-Driven. We will start with the basics of Akka and work our way towards some of its more advanced modules such as Akka Cluster and Akka Persistence—all driven through code and practical examples.
Introduction to Akka 2. Explains what Akka's actors are all about and how to utilize them to write scalable and fault-tolerant systems.
Talk given at JavaZone 2012.
Building Reactive Systems with Akka (in Java 8 or Scala)Jonas Bonér
Learn how to build Reactive Systems with Akka. Examples in both Java 8 and Scala.
Abstract:
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand. We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications.
In this talk we will introduce you to Akka and discuss how it can help you deliver on the four key traits of Reactive; Responsive, Resilient, Elastic and Message-Driven. We will start with the basics of Akka and work our way towards some of its more advanced modules such as Akka Cluster and Akka Persistence—all driven through code and practical examples.
Everyone in the Scala world is using or looking into using Akka for low-latency, scalable, distributed or concurrent systems. I'd like to share my story of developing and productionizing multiple Akka apps, including low-latency ingestion and real-time processing systems, and Spark-based applications.
When does one use actors vs futures?
Can we use Akka with, or in place of, Storm?
How did we set up instrumentation and monitoring in production?
How does one use VisualVM to debug Akka apps in production?
What happens if the mailbox gets full?
What is our Akka stack like?
I will share best practices for building Akka and Scala apps, pitfalls and things we'd like to avoid, and a vision of where we would like to go for ideal Akka monitoring, instrumentation, and debugging facilities. Plus backpressure and at-least-once processing.
Akka: Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Ac...Jonas Bonér
Akka is the platform for the next generation event-driven, scalable and fault-tolerant architectures on the JVM
We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction.
Akka is here to change that.
Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provides a better platform to build correct concurrent and scalable applications.
For fault-tolerance we adopt the "Let it crash" / "Embrace failure" model which have been used with great success in the telecom industry to build applications that self-heals, systems that never stop.
Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications.
Akka is Open Source and available under the Apache 2 License.
Slides for my talk event-sourced architectures with Akka. Discusses Akka Persistence as mechanism to do event-sourcing. Presented at Javaone 2014 and Jfokus 2015.
Akka is a event driven, asynchronous, distributed framework which help in doing asyc event handling. Akka is reactive which gives him power to handle faults, become responsive, elastic.
A gentle introduction on the use of implicit values & conversions in Scala.
It also introduces some design patterns for which implicit(s) are the building blocks.
http://blog.stratio.com/developers-guide-scala-implicit-values-part/
These are the slides from a talk I gave at the Waterloo Scala Meetup on October 9th 2013. The talk was geared toward describing the purpose of implicits, use cases, and getting past that initial hump of "what are they and why would I need them" in order to get people to start exploring the ideas.
Akka Streams is an implementation of Reactive Streams, which is a standard for asynchronous stream processing with non-blocking backpressure on the JVM. In this talk we'll cover the rationale behind Reactive Streams, and explore the different building blocks available in Akka Streams. I'll use Scala for all coding examples, but Akka Streams also provides a full-fledged Java8 API.After this session you will be all set and ready to reap the benefits of using Akka Streams!
Mongo db - How we use Go and MongoDB by Sam HelmanHakka Labs
In this talk, we'll hear from Sam Helman, Software Engineer at 10gen, on how 10gen is integrating Go into our new and existing cloud tools. Some of the tools leveraging Go include the backup capabilities in MongoDB Management Service and a continuos integration tool. This was an opportunity to experiment with new technologies and create a better product for end users.
Programming the in Go and the mgo driver has been extremely satisfying. Between the lightweight syntax, the first-class concurrency and the well documented, idiomatic libraries such as mgo, Go is a great choice for writing anything from small scripts to large distributed applications. In this talk, Sam will go through how the team has integrated Go and why Go and MongoDB are a great match for cloud services.
How to make good teams great - Sven PetersJAX London
Developing a product over years is a tough job. It is hard for the team to stay excited on a day to day basis. So how can you improve motivation and innovation of agile teams and still keep the focus on building a great product? I want to share with you how we at Atlassian used an agile approach to become one of the most successful developer tool companies in the world. This talk will cover topics like Ship It days, 20-percent time, keeping distraction away from developers, lunchtime talks, dogfooding and much more.
[GAN by Hung-yi Lee]Part 2: The application of GAN to speech and text processingNAVER Engineering
Generative Adversarial Network and its Applications on Speech and Natural Language Processing, Part 2.
발표자: Hung-yi Lee(국립 타이완대 교수)
발표일: 18.7.
Generative adversarial network (GAN) is a new idea for training models, in which a generator and a discriminator compete against each other to improve the generation quality. Recently, GAN has shown amazing results in image generation, and a large amount and a wide variety of new ideas, techniques, and applications have been developed based on it. Although there are only few successful cases, GAN has great potential to be applied to text and speech generations to overcome limitations in the conventional methods.
In the first part of the talk, I will first give an introduction of GAN and provide a thorough review about this technology. In the second part, I will focus on the applications of GAN to speech and natural language processing. I will demonstrate the applications of GAN on voice I will also talk about the research directions towards unsupervised speech recognition by GAN.conversion, unsupervised abstractive summarization and sentiment controllable chat-bot.
Every organisation pretends to be unique, but they mostly follow similar mechanics. Discover how your organisation too falls into common pitfalls and antipatterns and how you can leverage the situation to improve it.
Everyone in the Scala world is using or looking into using Akka for low-latency, scalable, distributed or concurrent systems. I'd like to share my story of developing and productionizing multiple Akka apps, including low-latency ingestion and real-time processing systems, and Spark-based applications.
When does one use actors vs futures?
Can we use Akka with, or in place of, Storm?
How did we set up instrumentation and monitoring in production?
How does one use VisualVM to debug Akka apps in production?
What happens if the mailbox gets full?
What is our Akka stack like?
I will share best practices for building Akka and Scala apps, pitfalls and things we'd like to avoid, and a vision of where we would like to go for ideal Akka monitoring, instrumentation, and debugging facilities. Plus backpressure and at-least-once processing.
Akka: Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Ac...Jonas Bonér
Akka is the platform for the next generation event-driven, scalable and fault-tolerant architectures on the JVM
We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction.
Akka is here to change that.
Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provides a better platform to build correct concurrent and scalable applications.
For fault-tolerance we adopt the "Let it crash" / "Embrace failure" model which have been used with great success in the telecom industry to build applications that self-heals, systems that never stop.
Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications.
Akka is Open Source and available under the Apache 2 License.
Slides for my talk event-sourced architectures with Akka. Discusses Akka Persistence as mechanism to do event-sourcing. Presented at Javaone 2014 and Jfokus 2015.
Akka is a event driven, asynchronous, distributed framework which help in doing asyc event handling. Akka is reactive which gives him power to handle faults, become responsive, elastic.
A gentle introduction on the use of implicit values & conversions in Scala.
It also introduces some design patterns for which implicit(s) are the building blocks.
http://blog.stratio.com/developers-guide-scala-implicit-values-part/
These are the slides from a talk I gave at the Waterloo Scala Meetup on October 9th 2013. The talk was geared toward describing the purpose of implicits, use cases, and getting past that initial hump of "what are they and why would I need them" in order to get people to start exploring the ideas.
Akka Streams is an implementation of Reactive Streams, which is a standard for asynchronous stream processing with non-blocking backpressure on the JVM. In this talk we'll cover the rationale behind Reactive Streams, and explore the different building blocks available in Akka Streams. I'll use Scala for all coding examples, but Akka Streams also provides a full-fledged Java8 API.After this session you will be all set and ready to reap the benefits of using Akka Streams!
Mongo db - How we use Go and MongoDB by Sam HelmanHakka Labs
In this talk, we'll hear from Sam Helman, Software Engineer at 10gen, on how 10gen is integrating Go into our new and existing cloud tools. Some of the tools leveraging Go include the backup capabilities in MongoDB Management Service and a continuos integration tool. This was an opportunity to experiment with new technologies and create a better product for end users.
Programming the in Go and the mgo driver has been extremely satisfying. Between the lightweight syntax, the first-class concurrency and the well documented, idiomatic libraries such as mgo, Go is a great choice for writing anything from small scripts to large distributed applications. In this talk, Sam will go through how the team has integrated Go and why Go and MongoDB are a great match for cloud services.
How to make good teams great - Sven PetersJAX London
Developing a product over years is a tough job. It is hard for the team to stay excited on a day to day basis. So how can you improve motivation and innovation of agile teams and still keep the focus on building a great product? I want to share with you how we at Atlassian used an agile approach to become one of the most successful developer tool companies in the world. This talk will cover topics like Ship It days, 20-percent time, keeping distraction away from developers, lunchtime talks, dogfooding and much more.
[GAN by Hung-yi Lee]Part 2: The application of GAN to speech and text processingNAVER Engineering
Generative Adversarial Network and its Applications on Speech and Natural Language Processing, Part 2.
발표자: Hung-yi Lee(국립 타이완대 교수)
발표일: 18.7.
Generative adversarial network (GAN) is a new idea for training models, in which a generator and a discriminator compete against each other to improve the generation quality. Recently, GAN has shown amazing results in image generation, and a large amount and a wide variety of new ideas, techniques, and applications have been developed based on it. Although there are only few successful cases, GAN has great potential to be applied to text and speech generations to overcome limitations in the conventional methods.
In the first part of the talk, I will first give an introduction of GAN and provide a thorough review about this technology. In the second part, I will focus on the applications of GAN to speech and natural language processing. I will demonstrate the applications of GAN on voice I will also talk about the research directions towards unsupervised speech recognition by GAN.conversion, unsupervised abstractive summarization and sentiment controllable chat-bot.
Every organisation pretends to be unique, but they mostly follow similar mechanics. Discover how your organisation too falls into common pitfalls and antipatterns and how you can leverage the situation to improve it.
Slaying The Legacy Dragon: Practical Lessons in Replacing Old SoftwareTim Berglund
Everyone hates the legacy application and wants to replace it. You're tired of the brittle, untested code, the outdated frameworks, the platform nobody cares about anymore. You want to apply current practices and the productivity gains of today's tools. Usually this is just a frustrated dream, but every once in a while, you actually get to do it. That's great news, but it raises a question: how do you do that?
In this presentation, we'll examine the issues encountered by a business undertaking the enormous effort of replacing a key legacy application with a new technology stack. We'll explore the technology, business, and people problems that can result, looking at specific technology solutions for a slow and careful migration of business-critical functionality off of one system and on to another of a very different kind.
This presentation is about how to get the best out of your software development team. We at Atlassian have tried some things to make our daily work more efficient and more fun. We are tying things like Dogfooding, Brown Bags, automatic project reports, FedEx Days and much much more.
From the Inside Out: How Self-Talk Affects Your Communitydreamwidth
Identifying and discouraging negative self-talk is a simple thing, but it can have a huge impact on your community in a positive way. It increases self-confidence, improves morale, and generally results in happier, more productive community participants. This, in turn, will make you happy.
Negative self-talk is a pervasive, invasive, and unproductive way of thinking. It can trigger a cascade of things, from abandoned patches (“I am not smart/talented/good enough to figure this out”), to withdrawl from the community (“I screwed this up and everyone knows and hates me”), to general discouragement (“I suck, and have nothing valuable to contribute here”).
In this talk, I discuss the various methods Dreamwidth and other organizations use to handle negative self-talk, and the best way to deploy those techniques. I also discuss things to keep an eye out for in your community that may be at the root of this type of self-talk, and processes you can go through to eliminate them. Finally, there's a quick overview of impostor syndrome, and the role it plays here.
This presentation is by Doug Crockford, I'm reposting it here from this Google Blog post: http://googlecode.blogspot.com/2009/03/doug-crockford-javascript-good-parts.html
Developing a product over years is a tough job. It is hard for the team to stay excited on a day to day basis. So how can you improve motivation and innovation of agile teams and still keep the focus on building a great product? I want to share with you how we at Atlassian used an agile approach to become one of the most successful developer tool companies in the world. This talk will cover topics like FedEx days, 20-percent time, keeping distraction away from developers, lunchtime talks, dogfooding and much more.
Tickets Make Ops Unnecessarily Miserable: The Journey to Self-ServiceRundeck
Damon Edwards, Alex Honor, Nathan Fluegel of Rundeck presentation from All Day DevOps on Oct 17, 2018
See a Demo of Rundeck Enterprise :
https://www.rundeck.com/see-demo
--or--
Download Rundeck Open Source here:
https://rundeck.com/open-source
Connect:
Stack Overflow community: https://stackoverflow.com/questions/tagged/rundeck
Github: https://github.com/rundeck/rundeck/issues
Twitter: https://twitter.com/Rundeck
Facebook: https://www.facebook.com/RundeckInc/
LinkedIn: www.linkedin.com › company › rundeck-inc
Emily Greer at GDC 2018: Data-Driven or Data-Blinded?Kongregate
In the last decade of data analysis, A/B testing and predictive modeling have transitioned from an afterthought to a given in the game industry. Data can be invaluable in understanding the player and making decisions, but it can just as easily lead the industry astray, or worse, narrow the way the industry thinks. When should you be driven by data, and when should you let your imagination roam free? This session will expose common mistakes and pitfalls, both technical and emotional, as well as provide practical guidance on how to improve the rigorousness of your tests and the quality of your data, and how to make sure you don't lose the forest for the trees.
Intuition & Use-Cases of Embeddings in NLP & beyondC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2LZgiKO.
Jay Alammar talks about the concept of word embeddings, how they're created, and looks at examples of how these concepts can be carried over to solve problems like content discovery and search ranking in marketplaces and media-consumption services (e.g. movie/music recommendations). Filmed at qconlondon.com.
Jay Alammar is VC and ML Explainer at STVcapital. He has helped tens of thousands of people wrap their heads around complex ML topics. He harnesses a visual, highly-intuitive presentation style to communicate concepts ranging from the most basic intros to data analysis, interactive intros to neural networks, to dissections of state-of-the-art models in Natural Language Processing.
Page 1 of 13Psyc-E1900 Start of Block DefaultTatianaMajor22
Page 1 of 13
Psyc-E1900
Start of Block: Default Question Block
Q35
This survey should take about 5 minutes. Your answers are anonymous, but if there are any
questions you don't feel comfortable answering, simply skip them.
ImaginaryFriend
Did you have an imaginary friend as a kid?
o Yes (1)
o Maybe (0)
o No (-1)
Display This Question:
If Did you have an imaginary friend as a kid? = Yes
ImaginaryFriendAge
How old were you when you stopped having an imaginary friend?
________________________________________________________________
Page 2 of 13
Ghosts
How much do you agree with the following statement?
"Ghosts are real."
o Strongly agree (1)
o Agree (2)
o Somewhat agree (3)
o Neither agree nor disagree (4)
o Somewhat disagree (5)
o Disagree (6)
o Strongly disagree (7)
God
How much do you agree with the following statement?
"There is a god."
o Strongly agree (1)
o Agree (2)
o Somewhat agree (3)
o Neither agree nor disagree (4)
o Somewhat disagree (5)
o Disagree (6)
o Strongly disagree (7)
Page 3 of 13
UFO
How much do you agree with the following statement?
"Extraterrestrial aliens have already visited earth."
o Strongly agree (1)
o Agree (2)
o Somewhat agree (3)
o Neither agree nor disagree (4)
o Somewhat disagree (5)
o Disagree (6)
o Strongly disagree (7)
SETI
How much do you agree with the following statement?
"It is likely that there is life in the universe besides planet Earth."
o Strongly agree (1)
o Agree (2)
o Somewhat agree (3)
o Neither agree nor disagree (4)
o Somewhat disagree (5)
o Disagree (6)
o Strongly disagree (7)
Page 4 of 13
GMOs
How much do you agree with the following statement?
"GMOs are dangerous and need to be banned."
o Strongly agree (1)
o Agree (2)
o Somewhat agree (3)
o Neither agree nor disagree (4)
o Somewhat disagree (5)
o Disagree (6)
o Strongly disagree (7)
MoreAttractive
Thinking of 100 people your same sex and age, how many of them do you think you are more
attractive than?
________________________________________________________________
Page 5 of 13
AttractiveConfident
On a scale of 1-7, how confident are you regarding your response to the previous question?
(You indicated you were more attractive than ${MoreAttractive/ChoiceTextEntryValue} of 100
people of your same sex and age.)
o 1 - Not at all Confident (1)
o 2 (2)
o 3 (3)
o 4 - Moderately Confident (4)
o 5 (5)
o 6 (6)
o 7 - Completely Confident (7)
Stronger
Thinking of 100 people your same sex and age, how many of them do you think you are
stronger than?
________________________________________________________________
Page 6 of 13
StrongerConfident
On a scale of 1-7, how confident are you regarding your response to the previous
questio ...
This talk will introduce into programming with evolutionary algorithms.
We'll build and/or discover a small framework for creating genetic
algorithms.
Genetic algorithms are good to solve certain kind of algorithmic
problems.
The talk will also give a rough picture about situations where
evolutionary programming might be the right solution.
Especially np hard problems like the traveling sales man problem (TSP) or
the rucksack problem are well known combinatoric problems (such as
distributing vservers across a number of vserver-hosts).
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
4. Akka is Concurrency
Actors: Living objects with concurrent context
Futures: These aren’t Java’s Futures
val
futureData
=
for
{
response
<-‐
httpGet(…)
query
=
response.body.as[Query]
(img,
text)
<-‐
imageQuery(query)
scaledImg
<-‐
scaleImg(img)
}
yield
NewPostData(text,
scaledImg)
“I am for you,
Alrik of Valt.”
5. Akka is Concurrency
Actors: Living objects with concurrent context
Futures: These aren’t Java’s Futures
val
futureData
=
for
{
response
<-‐
httpGet(…)
query
=
response.body.as[Query]
(img,
text)
<-‐
imageQuery(query)
scaledImg
<-‐
scaleImg(img)
}
yield
NewPostData(text,
scaledImg)
Asynchronous
Asynchronous
Asynchronous
Asynchronous
“I am for you,
Alrik of Valt.”
6. Akka is Concurrency
Actors: Living objects with concurrent context
Futures: These aren’t Java’s Futures
val
futureData
=
for
{
response
<-‐
httpGet(…)
query
=
response.body.as[Query]
(img,
text)
<-‐
imageQuery(query)
scaledImg
<-‐
scaleImg(img)
}
yield
NewPostData(text,
scaledImg)
Asynchronous
Asynchronous
Asynchronous
Asynchronous
Streams: Async Non-Blocking and Back-Pressured
Source
Sink
Demand
Supply
Http too…
“I am for you,
Alrik of Valt.”
7. Akka is Concurrency
Actors: Living objects with concurrent context
Futures: These aren’t Java’s Futures
val
futureData
=
for
{
response
<-‐
httpGet(…)
query
=
response.body.as[Query]
(img,
text)
<-‐
imageQuery(query)
scaledImg
<-‐
scaleImg(img)
}
yield
NewPostData(text,
scaledImg)
Asynchronous
Asynchronous
Asynchronous
Asynchronous
Streams: Async Non-Blocking and Back-Pressured
Source
Sink
Demand
Supply
Http too…
“I am for you,
Alrik of Valt.”
Support for Scala and Java (but use Scala, cuz…)
10. Actors: Concurrency in Isolation
count: 2
alert: Y
score: 16
count: 4
alert: N
score: 2
count: 33
alert: G
score: 71
count: 13
alert: G
score: 12
count: 7
alert: X
score: 5
count: 8
alert: N
score: 11
count: 2
alert: I
score: 14
count: 87
alert: G
score: 0
count: 1
alert: B
score: 6
count: 7
alert: W
score: 32
count: 7
alert: O
score: 19
count: 4
alert: G
score: 99
count: _
alert: _
score: _
✗Construct as many as you’d like
11. Actors: Concurrency in Isolation
count: 2
alert: Y
score: 16
count: 4
alert: N
score: 2
count: 33
alert: G
score: 71
count: 13
alert: G
score: 12
count: 7
alert: X
score: 5
count: 8
alert: N
score: 11
count: 2
alert: I
score: 14
count: 87
alert: G
score: 0
count: 1
alert: B
score: 6
count: 7
alert: W
score: 32
count: 7
alert: O
score: 19
count: 4
alert: G
score: 99
count: _
alert: _
score: _
✗Construct as many as you’d like
✗Each one encapsulates its own state
12. Actors: Concurrency in Isolation
count: 2
alert: Y
score: 16
count: 4
alert: N
score: 2
count: 33
alert: G
score: 71
count: 13
alert: G
score: 12
count: 7
alert: X
score: 5
count: 8
alert: N
score: 11
count: 2
alert: I
score: 14
count: 87
alert: G
score: 0
count: 1
alert: B
score: 6
count: 7
alert: W
score: 32
count: 7
alert: O
score: 19
count: 4
alert: G
score: 99
Thread
Thread
count: _
alert: _
score: _
✗Construct as many as you’d like
✗Each one encapsulates its own state
✗They all (can) share the same thread pool
13. Actors: Concurrency in Isolation
count: 2
alert: Y
score: 16
count: 4
alert: N
score: 2
count: 33
alert: G
score: 71
count: 13
alert: G
score: 12
count: 7
alert: X
score: 5
count: 8
alert: N
score: 11
count: 2
alert: I
score: 14
count: 87
alert: G
score: 0
count: 1
alert: B
score: 6
count: 7
alert: W
score: 32
count: 7
alert: O
score: 19
count: 4
alert: G
score: 99
Thread
Thread
count: _
alert: _
score: _
✗Construct as many as you’d like
✗Each one encapsulates its own state
✗They all (can) share the same thread pool
✗They cannot interfere with each other
14. Actors: Concurrency in Isolation
count: 2
alert: Y
score: 16
count: 4
alert: N
score: 2
count: 33
alert: G
score: 71
count: 8
alert: N
score: 11
count: 2
alert: I
score: 14
count: 87
alert: G
score: 0
count: 1
alert: B
score: 6
count: 7
alert: W
score: 32
count: 7
alert: O
score: 19
count: 4
alert: G
score: 99
Thread
Thread
count: _
alert: _
score: _
✗Construct as many as you’d like
✗Each one encapsulates its own state
✗They all (can) share the same thread pool
✗They cannot interfere with each other
✗Their life-cycles are entirely under your control
16. It’s all about the messages!
Actors have no public methods⦿ A
17. It’s all about the messages!
Actors have no public methods⦿
Actors have no publicly accessible data⦿
A B
18. It’s all about the messages!
Actors have no public methods⦿
Actors have no publicly accessible data⦿
You cannot communicate with Actors
Synchronously
⦿
A B
19. It’s all about the messages!
Actors have no public methods⦿
Actors have no publicly accessible data⦿
You cannot communicate with Actors
Synchronously
⦿
The only way to talk to them is with
Messages
⦿
A B
hey
20. It’s all about the messages!
Actors have no public methods⦿
Actors have no publicly accessible data⦿
You cannot communicate with Actors
Synchronously
⦿
The only way to talk to them is with
Messages
⦿
The only way to access their data is with
Messages
⦿
A B
83
21. It’s all about the messages!
Actors have no public methods⦿
Actors have no publicly accessible data⦿
You cannot communicate with Actors
Synchronously
⦿
The only way to talk to them is with
Messages
⦿
The only way to access their data is with
Messages
⦿
Messages can (and should) carry
conversational state
⦿
A B
A
22. It’s all about the messages!
Actors have no public methods⦿
Actors have no publicly accessible data⦿
You cannot communicate with Actors
Synchronously
⦿
The only way to talk to them is with
Messages
⦿
The only way to access their data is with
Messages
⦿
Messages can (and should) carry
conversational state
⦿
A B
A
Done(a,b,c)
24. Actors are Fault Tolerant
Actors supervise their children Parent
Child Child Child
Mailbox
Mailbox
Mailbox Mailbox
25. Actors are Fault Tolerant
Actors supervise their children
Failed Actors are restarted (or stopped,
or resumed, or escalated) by their supervisors
Parent
Child Child Child
Mailbox
Mailbox
Mailbox Mailbox
26. Actors are Fault Tolerant
Actors supervise their children
Failed Actors are restarted (or stopped,
or resumed, or escalated) by their supervisors
Restarted Actors are given a fresh state
Parent
Child Child Child
Mailbox
Mailbox
Mailbox Mailbox
27. Actors are Fault Tolerant
Actors supervise their children
Failed Actors are restarted (or stopped,
or resumed, or escalated) by their supervisors
Restarted Actors are given a fresh state
The message they were processing is lost
Parent
Child Child Child
Mailbox
Mailbox
Mailbox Mailbox
28. Actors are Fault Tolerant
Actors supervise their children
Failed Actors are restarted (or stopped,
or resumed, or escalated) by their supervisors
Restarted Actors are given a fresh state
The message they were processing is lost
Parent
Child Child
Mailbox
Mailbox
Mailbox Mailbox
Child
30. Death is Actionable
❉ Restarting is invisible to outsiders…
❉ …But Actor Death is visible
❉ Deathwatch lets Actors react to death,
such as to recreate a child
Parent
Child ChildChild
Deathwatch
Mailbox
31. Death is Actionable
❉ Restarting is invisible to outsiders…
❉ …But Actor Death is visible
❉ Deathwatch lets Actors react to death,
such as to recreate a child
Parent
ChildChildChild
Deathwatch
Mailbox
32. Death is Actionable
❉ Restarting is invisible to outsiders…
❉ …But Actor Death is visible
❉ Deathwatch lets Actors react to death,
such as to recreate a child
Parent
ChildChildChild
Deathwatch
Mailbox
❉
… Or a transaction is complete, or it’s
time to shut down, or a current stage of
processing is finished, or…
33. Death is Actionable
❉ Restarting is invisible to outsiders…
❉ …But Actor Death is visible
❉ Deathwatch lets Actors react to death,
such as to recreate a child
Parent
ChildChildChild
Deathwatch
Mailbox
❉ Remember that this is death, so the
mailbox contents are lost
❉
… Or a transaction is complete, or it’s
time to shut down, or a current stage of
processing is finished, or…
35. So, why would I use Actors?
✗Actors help you manage concurrency
Reasoning
36. So, why would I use Actors?
✗Actors help you manage concurrency
✗Actors let you implement services within your system
Reasoning
Service decoupling
37. So, why would I use Actors?
✗Actors help you manage concurrency
✗Actors let you implement services within your system
✗Actors let you design an entirely asynchronous system
Reasoning
Service decoupling
Capacity and Throughput
38. So, why would I use Actors?
✗Actors help you manage concurrency
✗Actors let you implement services within your system
✗Actors let you design an entirely asynchronous system
✗Actors let you define the resiliency of your applications
Reasoning
Service decoupling
Capacity and Throughput
Fault Tolerance
39. So, why would I use Actors?
✗Actors help you manage concurrency
✗Actors let you implement services within your system
✗Actors let you design an entirely asynchronous system
✗Actors let you define the resiliency of your applications
✗
Eventual consistency, and message delivery failure are realities
that Actors help you deal with throughout your code
Reasoning
Service decoupling
Capacity and Throughput
Fault Tolerance
Massive Scale
Self Healing
40. So, why would I use Actors?
✗Actors help you manage concurrency
✗Actors let you implement services within your system
✗Actors let you design an entirely asynchronous system
✗Actors let you define the resiliency of your applications
✗
Eventual consistency, and message delivery failure are realities
that Actors help you deal with throughout your code
✗
Most importantly, Actors help you think about the problem differently and express
your solutions more creatively
Reasoning
Service decoupling
Capacity and Throughput
Fault Tolerance
Massive Scale
Self Healing
Sanity, Clarity, and Reasonability!!
43. “Functional” Futures
◎ A Future is just a value, but not yet…
◎
java.util.concurrent.Future is a bad Future.
Akka gave us Futures that compose!
44. “Functional” Futures
◎ A Future is just a value, but not yet…
◎
java.util.concurrent.Future is a bad Future.
Akka gave us Futures that compose!
◎
Composable Futures let us abstract over Future
values, rather than wait for them
for {
45. “Functional” Futures
◎ A Future is just a value, but not yet…
◎
java.util.concurrent.Future is a bad Future.
Akka gave us Futures that compose!
◎
Composable Futures let us abstract over Future
values, rather than wait for them
for {
a <- futureA()
futureA()
46. futureB(a)
“Functional” Futures
◎ A Future is just a value, but not yet…
◎
java.util.concurrent.Future is a bad Future.
Akka gave us Futures that compose!
◎
Composable Futures let us abstract over Future
values, rather than wait for them
for {
a <- futureA()
b <- futureB(a)
futureA()
47. futureC(a,b) futureB(a)
“Functional” Futures
◎ A Future is just a value, but not yet…
◎
java.util.concurrent.Future is a bad Future.
Akka gave us Futures that compose!
◎
Composable Futures let us abstract over Future
values, rather than wait for them
for {
a <- futureA()
b <- futureB(a)
c <- futureC(a,b)
futureA()
48. futureC(a,b) futureB(a)
“Functional” Futures
◎ A Future is just a value, but not yet…
◎
java.util.concurrent.Future is a bad Future.
Akka gave us Futures that compose!
◎
Composable Futures let us abstract over Future
values, rather than wait for them
for {
a <- futureA()
b <- futureB(a)
c <- futureC(a,b)
} yield c
futureA()
One
composed
Future
49. futureC(a,b) futureB(a)
“Functional” Futures
◎ A Future is just a value, but not yet…
◎
java.util.concurrent.Future is a bad Future.
Akka gave us Futures that compose!
◎
Composable Futures let us abstract over Future
values, rather than wait for them
for {
a <- futureA()
b <- futureB(a)
c <- futureC(a,b)
} yield c
futureA()
◎
Futures compose as Monads compose, which makes them “standard”
functional abstractions, and that’s a powerful thing
One
composed
Future
51. Abolish Callback Hell
public void restHandler(RESTRequest req) {
idservice.validate(req.userInfo, new Callback<ValidateResult>() {
public void run(ValidateResult result) {
if (result.isValid) {
db.getProfile(req.userId, new Callback<UserProfile>() {
public void run(UserProfile profile) {
picServer.get(profile.pic1, new Callback<Pic>() {
public void run(Pic p1) {
picServer.get(profile.pic2, new Callback<Pic>() {
public void run(Pic p2) {
picServer.get(profile.pic3, new Callback<Pic>() {
public void run(Pic p3) {
picServer.get(profile.pic4, new Callback<Pic>() {
public void run(Pic p4) {
picServer.get(profile.pic5, new Callback<Pic>() {
public void run(Pic p5) {
twitterServer.getRecentActivity(req.userInfo, new Callback<TwitterActivity>() {
public void run(TwitterActivity activity) {
req.sendResponse(pic1, pic2, pic3, pic4, pic5, activity)
}
}
}
}
}
}
}
}
52. Abolish Callback Hell
public void restHandler(RESTRequest req) {
idservice.validate(req.userInfo, new Callback<ValidateResult>() {
public void run(ValidateResult result) {
if (result.isValid) {
db.getProfile(req.userId, new Callback<UserProfile>() {
public void run(UserProfile profile) {
picServer.get(profile.pic1, new Callback<Pic>() {
public void run(Pic p1) {
picServer.get(profile.pic2, new Callback<Pic>() {
public void run(Pic p2) {
picServer.get(profile.pic3, new Callback<Pic>() {
public void run(Pic p3) {
picServer.get(profile.pic4, new Callback<Pic>() {
public void run(Pic p4) {
picServer.get(profile.pic5, new Callback<Pic>() {
public void run(Pic p5) {
twitterServer.getRecentActivity(req.userInfo, new Callback<TwitterActivity>() {
public void run(TwitterActivity activity) {
req.sendResponse(pic1, pic2, pic3, pic4, pic5, activity)
}
}
}
}
}
}
}
}
We didn’t handle errors
We didn’t handle timeouts
It’s not necessarily Threadsafe
It’s incredibly hard to read
56. So why would I use Futures?
Asynchronous programming is still hard⦿
57. So why would I use Futures?
Asynchronous programming is still hard⦿
Programming synchronously isn’t a reasonable response⦿
Thread starvation
timeouts
capacity issues
thread thrashing
58. So why would I use Futures?
Asynchronous programming is still hard⦿
Programming synchronously isn’t a reasonable response⦿
Scala Futures embody asynchronous values⦿
Thread starvation
timeouts
capacity issues
thread thrashing
Everything is a value
59. So why would I use Futures?
Asynchronous programming is still hard⦿
Programming synchronously isn’t a reasonable response⦿
Scala Futures embody asynchronous values⦿
They let us express composed asynchronous computation⦿
Thread starvation
timeouts
capacity issues
thread thrashing
Everything is a value
Less Side Effects
60. So why would I use Futures?
Asynchronous programming is still hard⦿
Programming synchronously isn’t a reasonable response⦿
Scala Futures embody asynchronous values⦿
They let us express composed asynchronous computation⦿
Futures let us propagate errors and recover from them⦿
Thread starvation
timeouts
capacity issues
thread thrashing
Everything is a value
Less Side Effects
Graceful Failure
Resiliency
61. So why would I use Futures?
Asynchronous programming is still hard⦿
Programming synchronously isn’t a reasonable response⦿
Scala Futures embody asynchronous values⦿
They let us express composed asynchronous computation⦿
Futures let us propagate errors and recover from them⦿
Asynchronous programming has always been possible but
Futures now make it much more viable
⦿
Thread starvation
timeouts
capacity issues
thread thrashing
Everything is a value
Less Side Effects
Graceful Failure
Resiliency
63. Operating on Data Streams
❉ In the real world, we communicate with things
Networks
Disks
Databases Services Slower Algorithms
64. Operating on Data Streams
❉ In the real world, we communicate with things
Networks
Disks
Databases Services Slower Algorithms
❉ Polling sucks. We live in a real time world.
65. Operating on Data Streams
❉ In the real world, we communicate with things
Networks
Disks
Databases Services Slower Algorithms
❉ Polling sucks. We live in a real time world.
❉ Eventing can be hard, since it doesn’t compose
66. Operating on Data Streams
❉ In the real world, we communicate with things
Networks
Disks
Databases Services Slower Algorithms
❉ Polling sucks. We live in a real time world.
❉ Eventing can be hard, since it doesn’t compose
❉ Throttling is a real problem we never address
67. Operating on Data Streams
❉ In the real world, we communicate with things
Networks
Disks
Databases Services Slower Algorithms
❉ Polling sucks. We live in a real time world.
❉ Eventing can be hard, since it doesn’t compose
❉ Throttling is a real problem we never address
❉ Akka Streams help us solve all of these problems
68. Operating on Data Streams
❉ In the real world, we communicate with things
Networks
Disks
Databases Services Slower Algorithms
❉ Polling sucks. We live in a real time world.
❉ Eventing can be hard, since it doesn’t compose
❉ Throttling is a real problem we never address
❉ Akka Streams help us solve all of these problems
Source
Transformation
Flow
Transformation
Flow
Sink
Demand
Supply
71. BackPressure is key
◎ Fast producers can kill; we only have so much RAM
◎ Producers can’t be artificially slow just to be nice
Source
Sink
72. BackPressure is key
◎ Fast producers can kill; we only have so much RAM
◎ Producers can’t be artificially slow just to be nice
◎ Consumers signal demand, Producers signal supply
Source
Sink
73. BackPressure is key
◎ Fast producers can kill; we only have so much RAM
◎ Producers can’t be artificially slow just to be nice
◎ Consumers signal demand, Producers signal supply
◎ When a consumer is slow, it signals no demand
Source
Sink
74. BackPressure is key
◎ Fast producers can kill; we only have so much RAM
◎ Producers can’t be artificially slow just to be nice
◎ Consumers signal demand, Producers signal supply
◎ When a consumer is slow, it signals no demand
◎ When a producer is slow, it doesn’t supply
Source
Sink
75. BackPressure is key
◎ Fast producers can kill; we only have so much RAM
◎ Producers can’t be artificially slow just to be nice
◎ Consumers signal demand, Producers signal supply
◎ When a consumer is slow, it signals no demand
◎ When a producer is slow, it doesn’t supply
Source
Sink Supply
79. Composable Binary Protocols
Framer
ByteString ByteString
BidiFlow
Serializer
Object ByteString
BidiFlow
Chunker
ByteString ByteString
BidiFlow
Application
Object Object
Source Sink
Network
ByteString ByteString
Source Sink
BidiFlow
ByteStringObject
✗Entirely reusable components that fit in any BiDirectional Flow
80. Composable Binary Protocols
Framer
ByteString ByteString
BidiFlow
Serializer
Object ByteString
BidiFlow
Chunker
ByteString ByteString
BidiFlow
Application
Object Object
Source Sink
Network
ByteString ByteString
Source Sink
BidiFlow
ByteStringObject
✗Entirely reusable components that fit in any BiDirectional Flow
✗Type safe (or as type safe as byte string marshaling gets)
81. Composable Binary Protocols
Framer
ByteString ByteString
BidiFlow
Serializer
Object ByteString
BidiFlow
Chunker
ByteString ByteString
BidiFlow
Application
Object Object
Source Sink
Network
ByteString ByteString
Source Sink
BidiFlow
ByteStringObject
✗Entirely reusable components that fit in any BiDirectional Flow
✗Type safe (or as type safe as byte string marshaling gets)
✗Entirely back pressured from end to end
82. Composable Binary Protocols
Framer
ByteString ByteString
BidiFlow
Serializer
Object ByteString
BidiFlow
Chunker
ByteString ByteString
BidiFlow
Application
Object Object
Source Sink
Network
ByteString ByteString
Source Sink
BidiFlow
ByteStringObject
✗Entirely reusable components that fit in any BiDirectional Flow
✗Type safe (or as type safe as byte string marshaling gets)
✗Entirely back pressured from end to end
✗100% event driven and reactive Realtime Speeds
No Blocking Threads
Natural Throttling
graceful performance degradationNot a Crash
84. Why Would I use Streams?
Streaming is (probably) the crown jewel of Akka’s offering (but it’s a tough call)
85. Why Would I use Streams?
Streaming is (probably) the crown jewel of Akka’s offering
The need to respond to backpressure is real and we never do it !
(but it’s a tough call)
86. Why Would I use Streams?
Streaming is (probably) the crown jewel of Akka’s offering
The need to respond to backpressure is real and we never do it
The need to treat our threads with respect is important
!
!
(but it’s a tough call)
87. Why Would I use Streams?
Streaming is (probably) the crown jewel of Akka’s offering
The need to respond to backpressure is real and we never do it
The need to treat our threads with respect is important
The need to be reactive and fast is vital to the user experience
!
!
!
(but it’s a tough call)
88. Why Would I use Streams?
Streaming is (probably) the crown jewel of Akka’s offering
The need to respond to backpressure is real and we never do it
The need to treat our threads with respect is important
The need to be reactive and fast is vital to the user experience
Streams give us all of this and let us use our hardware to its fullest
!
!
!
!!!
(but it’s a tough call)
90. Akka from 20k feetAkka from 20k feet
Actors!
Actors!
Live Objects
Supervised
Asynchronous
Message Passing
Services
State Machines
Network Ready
91. Akka from 20k feetAkka from 20k feet
Actors!
Actors!
Futures!
Futures!
Live Objects
Supervised
Asynchronous
Message Passing
Services
State Machines
Network Ready
Composable Values
Reactive
Monadic
Immutable
Threadsafe
Work Well with Actors
92. Akka from 20k feetAkka from 20k feet
Actors!
Actors!
Futures!
Futures!
Streams!
Streams!
Live Objects
Supervised
Asynchronous
Message Passing
Services
State Machines
Network Ready
Composable Values
Reactive
Monadic
Immutable
Threadsafe
Work Well with Actors
BackPressured
Composable
Reusable
Event Driven
Flexible
Lots of Activity and Support
Work with Futures and Actors
93. Go Get AKKA!Go Get AKKA!
Website: http://akka.io
Scala Reference: http://doc.akka.io/docs/akka/current/scala.html
Java Reference: http://doc.akka.io/docs/akka/current/java.html
Streams Reference: http://doc.akka.io/docs/akka-stream-and-http-experimental/current/scala.html
Derek Wyatt
Twitter: @derekwyatt
Email: derek@derekwyatt.orgAugust 2015