Reactive architecture, a new way of thinking
Reactive architecture and the nature of bees
About Grace Jansen
The British Grace Jansen is not a Dutch disguise, but a real Brit. “My grandfather gave me my last name, but I unfortunately don’t speak the language,” she says during Devoxx Belgium, a conference on open source software development. After this conference, she will go straight to Budapest and then to Devoxx Morocco.
Grace studied biology at the University of Exeter but ended up at IBM in Hursley as a developer advocate. “People are often surprised to discover that I don’t have a traditional computer science degree but instead became interested in technology through projects in my free time.”
Grace has now been working for IBM for over two years as a developer advocate — a role that enables her to help developers. Grace elaborates, “As a developer advocate, we program applications ourselves, but we also create demo applications and test certain integrations between different products. We make manuals and tutorials for the various open source products we use and give presentations. In addition, we make it a priority to listen to the developers we meet around what they feel is missing, and how we can make their lives easier so we can feed this back to the development team and improve the dev experience.” At the moment, Grace is very busy with Reactive systems — a different way of thinking about and designing applications.
Reactive architecture and the nature of bees
At Devoxx Belgium, Grace gave a number of talks, including one about Reactive architecture, entitled “Reacting to the future of application architecture.” In the talk, she uses an analogy from biology, namely how bees live and function together. “I compare the behavior of bees with how we would like applications to function and meet the requirements and expectations of users.”
“In my talk, I’m talking about three different scenarios that can be compared to what we want software to do.”
“First of all, bees look for food. For example, a bee finds a lot of food and the worker then communicates the location of the food by dancing to the bees in the hive. With only a minimal amount of information, other bees then know where to find the food. They react as quickly as possible because, before you know it, the food will be gone again. We also want such responsiveness from our applications.”
“Secondly, what happens when the queen dies? She is responsible for producing new bees, and without a queen, the whole nest will die out. When she dies, certain bees follow an instruction set to raise a new queen. This must be done within thirty days, otherwise, the hive dies out. The bee population itself lives on during its absence and each bee does its own thing. So they are very resilient to potential failures and problems. That’s what we want for applications as well: if an important part fails, the rest has to keep running by completely decoupling the different components of our applications.”
“Finally, in the presentation, I describe the behavior of bees when they protect their hive. Guard bees already exist, but they make up only 11 percent of the entire population. Suppose a bear comes to steal the honey. Then many other bees have to take on the role of guards as well. In this sense, they are like microservices: similar components with specific roles or responsibilities that work together to make a beehive a success.”
“All in all, bees are very elastic in the roles they perform and the responsibilities they have. Like the bees, we want very flexible microservices that can respond as elastically and dynamically as possible to different loads on the systems. And that brings me to the three pillars on which the Reactive Manifesto is built: responsiveness, elasticity, and resiliency.”
In the remainder of her talk, Grace discusses the tools used to build these Reactive systems, such as domain-driven design, bulk heading, and sharding. To achieve this, there are many open source frameworks available to developers, such as Akka, Lagom, Play and, more recently, Vert.x.
Women and STEM
At Devoxx Belgium, Grace also gave a lightning talk about women in the tech sector and how to achieve more diversification, entitled “THINK-ing big, THINK-ing diverse, THINK-ing forward.”
Exemplifying what Grace discusses in her talk, Grace gives courses and the like to encourage young female students to follow their passion in technology and STEM. “I hope that the public will then take the initiatives and suggestions I talk about in my presentation with them and use it themselves to make a difference in the diversity of our workforce,” says Grace.
“Unfortunately, my school did not offer programming as a subject. Otherwise, I would have gotten into it more quickly.” During Grace’s biology studies, which she enjoyed greatly, she soon ran simulations with Python and R. “For my thesis, I simulated flights around the world and looked at the spread of viruses through the aircraft network and whether we could use quarantines or vaccinations to prevent that. Then I realized that I enjoyed coding much more than biology. Fortunately, IBM accepts a very broad and diverse group of graduates. After joining IBM, I jumped straight into the world of object-oriented Java with a very steep learning curve, but that didn’t spoil the fun.”
In order for young women to become directly acquainted with technology, Grace believes it is important to show that it is not very difficult to do something in your own surroundings. As an example, she was part of a big competition that IBM organized in cooperation with Disney in the United Kingdom to encourage girls between 11 and 14 years old to engage in artificial intelligence and thus solve daily problems. “We got more than two hundred entries, which was great, and the girls who made it to the semifinals were given access to the Watson API to develop their ideas.”
In addition to such a large event, developer advocates are also working at IBM on smaller-scale initiatives, such as machine learning for kids, where a combination of Scratch and Watson is used to teach artificial intelligence and machine learning concepts to children, such as having a kind of Harry Potter sorting hat built by themselves.
One of the projects Grace is very proud of is one in which the girls she mentored in the Disney competition had an idea to make glasses for the blind and visually impaired, using several cameras inside to recognize objects and then translate the camera images to speech to the wearer of the glasses. The girls were able to use the 3D printed glasses along with Watson services to build a working version in just six weeks!
Reactive Systems explained
Together, with Peter Gollmar, Grace co-authored an O’Reilly report entitled Reactive Systems explained: Jump-start your journey to Reactive architecture as an introduction to Reactive.
“Above all, we want readers to understand the reasons for using Reactive. This is a light and easy-to-use report with enough information to be able to make such an important decision to switch to a different architecture, or at least to inspire developers to follow up on this interest in Reactive architecture and do their own further research into it.”
“Many people may have heard of Reactive programming, and, although it is a useful tool for internal logic flow within microservices, in isolation it does not enable an entire application to be reactive. We touch upon this in the book, explaining this, and why this means that it’s a useful tool but not the single solution for Reactive Systems. After all, an application is not a single microservice but instead made up of many microservices or components. You have to think about it on a system level and not only think about microservices, but also about all the other components, such as communication between those systems. Is there synchronicity between the components? Are they connected? Are they separated? If we don’t think about this on the system level, then there is almost guaranteed to be blocking somewhere down the line, and your application’s reactivity will decline.”
To learn more about Reactive, download the O’Reilly report Reactive Systems explained.
Grace was recently named as a #TechWomen100 2019 winner.
TechWomen100 is the WeAreTechWomen annual recognition program highlighting the achievements of women in technology below senior management level.
Like Grace’s personal ambitions to encourage women in technology, WeAreTechWomen has a similar mission in awarding the TechWomen100:
“It is no secret that the technology industry lacks female representation at all levels. Women make up just 19 percent of the industry. There are some fantastic awards for women working in tech, however, most of these focus on senior women.”
“[While] we feel it is extremely necessary to highlight senior and influential women, we also believe the pipeline of female technologists need a platform to shine.”
“This is why the TechWomen100 Awards were created. Our awards focus solely on women working in tech below director level. We hope that by highlighting the accolades of up-and-coming inspirational female tech talent, we can help to create a new generation of female role models for the industry, and a pipeline of future leaders.”