Checkout Payment Inventory Shipment
The document discusses communication between microservices and distributed systems. It notes that event-driven architectures can decrease coupling, but peer-to-peer event chains are not suitable for complex flows. Distributed systems introduce challenges around consistency that require handling state. Workflow engines can help services collaborate by sorting out consistency issues and providing distributed orchestration owned by individual services.
O'Reilly SA NYC 2018: Complex event flows in distributed systemsBernd Ruecker
Slides from my talk at O'Reilly Software Architecture Conference in New York City on 28th of February 2018. Code from the demo is available: http://github.com/flowing/flowing-retail
Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum...confluent
Event-driven architectures enable nicely decoupled microservices and are fundamental for decentral data management. However, using peer-to-peer event chains to implement complex end-to-end logic crossing service boundaries can accidentally increase coupling. Extracting such business logic into dedicated services reduces coupling and allows to keep sight of larger-scale flows – without violating bounded contexts, harming service autonomy or introducing god services. Service boundaries get clearer and service APIs get smarter by focusing on their potentially long running nature. I will demonstrate how the new generation of lightweight and highly-scalable state machines ease the implementation of long running services. Based on my real-life experiences, I will share how to handle complex logic and flows which require proper reactions on failures, timeouts and compensating actions and provide guidance backed by code examples to illustrate alternative approaches.
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...camunda services GmbH
A company’s core business processes nearly always span more than one microservice. In an e-commerce company, for example, a “customer order” might involve different services for payments, inventory, shipping and more. But how do these services play together to fulfill the customer’s desire?
Implementing long-running, asynchronous, and complex collaborations between distributed microservices is challenging. How can we ensure visibility of cross-microservice flows and provide status and error monitoring? How do we guarantee that overall flows always complete, even if single services fail? Or how do we recognize stuck flows so that we can fix them?
In this webinar, Bernd will explain how workflow automation supports the orchestration of microservices, to make sure business processes are always carried out - even in case of failure -
providing monitoring and visibility into the overall progress and status.
He will reveal how to do all of this without introducing monolithic workflows that clash with microservices principles. You will also learn how to balance orchestration (using a workflow engine) with choreography (using events). Still believe that choreography is more loosely coupled and thus the modern way to go? You definitely need to listen in…
Complex event flows in distributed systems (QCon London 2019)Bernd Ruecker
Slides from my talk at QCon London on 5th of March 2019. More information can be found here: https://berndruecker.io/complex-event-flows-in-distributed-systems/
Abstract: Event-driven architectures enable nicely decoupled microservices and are fundamental for decentral data management. However, using peer-to-peer event chains to implement complex end-to-end logic crossing service boundaries can accidentally increase coupling. Extracting such business logic into dedicated services reduces coupling and allows to keep sight of larger-scale flows - without violating bounded contexts, harming service autonomy or introducing god services. Service boundaries get clearer and service APIs get smarter by focusing on their potentially long running nature. I will demonstrate how the new generation of lightweight and highly-scalable state machines ease the implementation of long running services. Based on my real-life experiences, I will share how to handle complex logic and flows which require proper reactions on failures, timeouts and compensating actions and provide guidance backed by code examples to illustrate alternative approaches.
O'Reilly SA NYC 2018: Complex event flows in distributed systemsBernd Ruecker
Slides from my talk at O'Reilly Software Architecture Conference in New York City on 28th of February 2018. Code from the demo is available: http://github.com/flowing/flowing-retail
Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum...confluent
Event-driven architectures enable nicely decoupled microservices and are fundamental for decentral data management. However, using peer-to-peer event chains to implement complex end-to-end logic crossing service boundaries can accidentally increase coupling. Extracting such business logic into dedicated services reduces coupling and allows to keep sight of larger-scale flows – without violating bounded contexts, harming service autonomy or introducing god services. Service boundaries get clearer and service APIs get smarter by focusing on their potentially long running nature. I will demonstrate how the new generation of lightweight and highly-scalable state machines ease the implementation of long running services. Based on my real-life experiences, I will share how to handle complex logic and flows which require proper reactions on failures, timeouts and compensating actions and provide guidance backed by code examples to illustrate alternative approaches.
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...camunda services GmbH
A company’s core business processes nearly always span more than one microservice. In an e-commerce company, for example, a “customer order” might involve different services for payments, inventory, shipping and more. But how do these services play together to fulfill the customer’s desire?
Implementing long-running, asynchronous, and complex collaborations between distributed microservices is challenging. How can we ensure visibility of cross-microservice flows and provide status and error monitoring? How do we guarantee that overall flows always complete, even if single services fail? Or how do we recognize stuck flows so that we can fix them?
In this webinar, Bernd will explain how workflow automation supports the orchestration of microservices, to make sure business processes are always carried out - even in case of failure -
providing monitoring and visibility into the overall progress and status.
He will reveal how to do all of this without introducing monolithic workflows that clash with microservices principles. You will also learn how to balance orchestration (using a workflow engine) with choreography (using events). Still believe that choreography is more loosely coupled and thus the modern way to go? You definitely need to listen in…
Complex event flows in distributed systems (QCon London 2019)Bernd Ruecker
Slides from my talk at QCon London on 5th of March 2019. More information can be found here: https://berndruecker.io/complex-event-flows-in-distributed-systems/
Abstract: Event-driven architectures enable nicely decoupled microservices and are fundamental for decentral data management. However, using peer-to-peer event chains to implement complex end-to-end logic crossing service boundaries can accidentally increase coupling. Extracting such business logic into dedicated services reduces coupling and allows to keep sight of larger-scale flows - without violating bounded contexts, harming service autonomy or introducing god services. Service boundaries get clearer and service APIs get smarter by focusing on their potentially long running nature. I will demonstrate how the new generation of lightweight and highly-scalable state machines ease the implementation of long running services. Based on my real-life experiences, I will share how to handle complex logic and flows which require proper reactions on failures, timeouts and compensating actions and provide guidance backed by code examples to illustrate alternative approaches.
Slides from my talk at QCon London on March 3rd 2020. Abstract: Integrating microservices or other components is hard, as it involves taming distributed systems. New API technologies are great, but can't magically solve all underlying challenges. This talk distills real-life experiences around typical architecture patterns. You will understand why you have to carefully think about boundaries and responsibilities of all your components. Further you will see why balancing orchestration and choreography is essential to avoid chaos. We also need to talk about idempotency, long-running and event-driven services. Don’t worry if you are new here, I will use easy to understand examples. In the end you will have gained a better feeling how to make your API smarter.
Talk given at DDDx London on 27th of April about how to implement long running processes in Domain Driven Design properly. Describes patterns like Process Manager and Saga.
Camunda Day New York 2019: Workflow Automation in Microservices Architectures...camunda services GmbH
Many Camunda users start to adopt microservices. In this presentation Bernd Rücker, Co-founder of Camunda, shares experiences and best practices on how to apply BPMN and the Camunda platform in your microservices architecture. `He’ll tackle questions around how you can slice end-to-end business processes into appropriate pieces, how many engines you should operate and how to keep in control.
Goto meetup Stockholm - Let your microservices flowBernd Ruecker
Slides from my talk at the GOTO meetup in Stockholm on 5th of April 2017. The talk is about the flow in microservices, so how a bunch of loosely coupled microservices can fulfill an overall business goal.
Slides from a talk held at WJAX Munic on 9th of November (and some other meetups later in November) about how to tackle collaboration of microservices.
Most of the talk was live coding, the respective code is here: https://github.com/flowing/flowing-retail.
Speaker: Bernd Rücker, Mitgründer und Developer's Advocate
Microservice-Architekturen finden zunehmend Verbreitung. Doch viele Fragen bleiben unbeantwortet: Wie sorge ich dafür, dass meine Geschäftsprozesse über die verteilten, unabhängigen Services hinweg zuverlässig ausgeführt werden? Wie organisiere ich den technischen Betrieb, der eine zentrale Anlaufstelle für die Fehlererkennung und -behebung benötigt? Und wie kann ich diese Probleme lösen, ohne das Paradigma der losen Kopplung von Microservices zu verletzen?
Camunda-Mitgründer Bernd Rücker wird aufzeigen, wie sich Microservice-Architekturen mit Camunda erfolgreich aufbauen und betreiben lassen.
Jfokus 2018: Lost in transaction - Strategies to deal with (in-)consistency ...Bernd Ruecker
Slides from my talk at Jfokus 2018 about how to avoid getting lost in transaction. Code is here: https://github.com/flowing/flowing-retail and https://github.com/flowing/flowing-retail/tree/master/payment-rest.
Master the flow of microservices - because your business is more complex than...Bernd Ruecker
My talk at Voxxed Vienna, talking about that business processes are more complex for most companies than simple models, like e.g. video streaming abos. These challenges can be addresses with Microservices, but you also have to take care about the flow. This talk shows how to do this with a lightweight engine using BPMN as part of your microservices.
November 2017: Collaboration of (micro-)servicesBernd Ruecker
Slides from a talk held at WJAX Munic on 9th of November (and some other meetups later in November) about how to tackle collaboration of microservices.
Most of the talk was live coding, the respective code is here: https://github.com/flowing/flowing-retail.
Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...Codemotion
Integrating microservices and distributed systems is hard. In this talk I will present three challenges we observed in real-life projects and how to avoid them. 1. Communication is complex. With everything being distributed failures are normal so you need sophisticated failure handling. 2. Asynchronicity requires you to handle timeouts. This is not only about milliseconds--systems get much more resilient when you can wait for minutes or hours. 3. Distributed transactions cannot simply be delegated to protocols like XA. I will not only use slides but demonstrate concrete source code examples.
Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...Codemotion
Integrating microservices and distributed systems is hard. In this talk I will present three challenges we observed in real-life projects and how to avoid them. 1. Communication is complex. With everything being distributed failures are normal so you need sophisticated failure handling. 2. Asynchronicity requires you to handle timeouts. This is not only about milliseconds--systems get much more resilient when you can wait for minutes or hours. 3. Distributed transactions cannot simply be delegated to protocols like XA. I will not only use slides but demonstrate concrete source code examples.
JUG Amsterdam - Orchestration of microservicesBernd Ruecker
Slides from the talk at JUG Amsterdam I held at 25th of September 2017. The live hacking code is available on GitHub: https://github.com/flowing/flowing-retail.
O'Reilly SA: Complex event flows in distributed systemsBernd Ruecker
Talk held at O'Reilly Software Architecture Conference London together with @martinschimak on 16th of October 2017. It is about how to tackle complex event flows in distributed systems (which could be e.g. event-driven microservices).
Code from live hacking example is here: https://github.com/flowing/flowing-retail
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your code’s security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
More Related Content
Similar to Communication between (micro-)services - Bernd Rücker - Codemotion Amsterdam 2018
Slides from my talk at QCon London on March 3rd 2020. Abstract: Integrating microservices or other components is hard, as it involves taming distributed systems. New API technologies are great, but can't magically solve all underlying challenges. This talk distills real-life experiences around typical architecture patterns. You will understand why you have to carefully think about boundaries and responsibilities of all your components. Further you will see why balancing orchestration and choreography is essential to avoid chaos. We also need to talk about idempotency, long-running and event-driven services. Don’t worry if you are new here, I will use easy to understand examples. In the end you will have gained a better feeling how to make your API smarter.
Talk given at DDDx London on 27th of April about how to implement long running processes in Domain Driven Design properly. Describes patterns like Process Manager and Saga.
Camunda Day New York 2019: Workflow Automation in Microservices Architectures...camunda services GmbH
Many Camunda users start to adopt microservices. In this presentation Bernd Rücker, Co-founder of Camunda, shares experiences and best practices on how to apply BPMN and the Camunda platform in your microservices architecture. `He’ll tackle questions around how you can slice end-to-end business processes into appropriate pieces, how many engines you should operate and how to keep in control.
Goto meetup Stockholm - Let your microservices flowBernd Ruecker
Slides from my talk at the GOTO meetup in Stockholm on 5th of April 2017. The talk is about the flow in microservices, so how a bunch of loosely coupled microservices can fulfill an overall business goal.
Slides from a talk held at WJAX Munic on 9th of November (and some other meetups later in November) about how to tackle collaboration of microservices.
Most of the talk was live coding, the respective code is here: https://github.com/flowing/flowing-retail.
Speaker: Bernd Rücker, Mitgründer und Developer's Advocate
Microservice-Architekturen finden zunehmend Verbreitung. Doch viele Fragen bleiben unbeantwortet: Wie sorge ich dafür, dass meine Geschäftsprozesse über die verteilten, unabhängigen Services hinweg zuverlässig ausgeführt werden? Wie organisiere ich den technischen Betrieb, der eine zentrale Anlaufstelle für die Fehlererkennung und -behebung benötigt? Und wie kann ich diese Probleme lösen, ohne das Paradigma der losen Kopplung von Microservices zu verletzen?
Camunda-Mitgründer Bernd Rücker wird aufzeigen, wie sich Microservice-Architekturen mit Camunda erfolgreich aufbauen und betreiben lassen.
Jfokus 2018: Lost in transaction - Strategies to deal with (in-)consistency ...Bernd Ruecker
Slides from my talk at Jfokus 2018 about how to avoid getting lost in transaction. Code is here: https://github.com/flowing/flowing-retail and https://github.com/flowing/flowing-retail/tree/master/payment-rest.
Master the flow of microservices - because your business is more complex than...Bernd Ruecker
My talk at Voxxed Vienna, talking about that business processes are more complex for most companies than simple models, like e.g. video streaming abos. These challenges can be addresses with Microservices, but you also have to take care about the flow. This talk shows how to do this with a lightweight engine using BPMN as part of your microservices.
November 2017: Collaboration of (micro-)servicesBernd Ruecker
Slides from a talk held at WJAX Munic on 9th of November (and some other meetups later in November) about how to tackle collaboration of microservices.
Most of the talk was live coding, the respective code is here: https://github.com/flowing/flowing-retail.
Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...Codemotion
Integrating microservices and distributed systems is hard. In this talk I will present three challenges we observed in real-life projects and how to avoid them. 1. Communication is complex. With everything being distributed failures are normal so you need sophisticated failure handling. 2. Asynchronicity requires you to handle timeouts. This is not only about milliseconds--systems get much more resilient when you can wait for minutes or hours. 3. Distributed transactions cannot simply be delegated to protocols like XA. I will not only use slides but demonstrate concrete source code examples.
Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...Codemotion
Integrating microservices and distributed systems is hard. In this talk I will present three challenges we observed in real-life projects and how to avoid them. 1. Communication is complex. With everything being distributed failures are normal so you need sophisticated failure handling. 2. Asynchronicity requires you to handle timeouts. This is not only about milliseconds--systems get much more resilient when you can wait for minutes or hours. 3. Distributed transactions cannot simply be delegated to protocols like XA. I will not only use slides but demonstrate concrete source code examples.
JUG Amsterdam - Orchestration of microservicesBernd Ruecker
Slides from the talk at JUG Amsterdam I held at 25th of September 2017. The live hacking code is available on GitHub: https://github.com/flowing/flowing-retail.
O'Reilly SA: Complex event flows in distributed systemsBernd Ruecker
Talk held at O'Reilly Software Architecture Conference London together with @martinschimak on 16th of October 2017. It is about how to tackle complex event flows in distributed systems (which could be e.g. event-driven microservices).
Code from live hacking example is here: https://github.com/flowing/flowing-retail
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your code’s security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
Il Commodore 65 è un prototipo di personal computer che Commodore avrebbe dovuto mettere in commercio quale successore del Commodore 64. Purtroppo la sua realizzazione si fermò appunto allo stadio prototipale. Racconterò l'affascinante storia del suo sviluppo ed il perchè della soppressione del progetto ormai ad un passo dalla immissione in commercio.
Rivivere l'ebbrezza di progettare un vecchio computer o una consolle da bar è oggi possibile sfruttando le FPGA, ovvero logiche programmabili che consentono a chiunque di progettare il proprio hardware o di ricrearne uno del passato. In questa sessione si racconta come dal reverse engineering dell'hardware di vecchie glorie come il Commodore 64 e lo ZX Spectrum sia stato possibile farle rivivere attraverso tecnologie oggi alla portata di tutti.
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
There's a lot of talk about blockchain, but how does the technology behind it actually work? For developers, getting some hands-on experience is the fastest way to get familiair with new technologies. So let's build a blockchain, then! In this session, we're going to build one in plain old Java, and have it working in 40 minutes. We'll cover key concepts of a blockchain: transactions, blocks, mining, proof-of-work, and reaching consensus in the blockchain network. After this session, you'll have a better understanding of core aspects of blockchain technology.
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
When was the last time you were truly lost? Thanks to the maps and location technology in our phones, a whole generation has now grown up in a world where getting lost is truly a thing of the past. Location technology goes far beyond maps in the palm of our hand, however. In this talk, we will explore how a ridesharing app works. How do we discover our destination?How do we find the closest driver? How do we display this information on a map? How do we find the best route?To answer these questions,we will be learning about a variety of location APIs, including Maps, Positioning, Geocoding etc.
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
Eward Driehuis, SecureLink's research chief, will guide you through the bumpy ride we call the cyber threat landscape. As the industry has over a decade of experience of dealing with increasingly sophisticated attacks, you might be surprised to hear more attacks slip through the cracks than ever. From analyzing 20.000 of them in 2018, backed by a quarter of a million security events and over ten trillion data points, Eward will outline why this happens, how attacks are changing, and why it doesn't matter how neatly or securely you code.
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
IoT revolution is ended. Thanks to hardware improvement, building an intelligent ecosystem is easier than never before for both startups and large-scale enterprises. The real challenge is now to connect, process, store and analyze data: in the cloud, but also, at the edge. We’ll give a quick look on frameworks that aggregate dispersed devices data into a single global optimized system allowing to improve operational efficiency, to predict maintenance, to track asset in real-time, to secure cloud-connected devices and much more.
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
What if Virtual Reality glasses could transform your environment into a three-dimensional work of art in realtime in the style of a painting from Van Gogh? One of the many interesting developments in the field of Deep Learning is the so called "Style Transfer". It describes a possibility to create a patchwork (or pastiche) from two images. While one of these images defines the the artistic style of the result picture, the other one is used for extracting the image content. A team from TNG Technology Consulting managed to build an AI showcase using OpenCV and Tensorflow to realize such goggles.
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
Blockchain (and Cryptocurrency) is an evolution of 20-year old research from scientists like Chaum, Lamport, and Castro & Liskov. Due to the current hype, it's hard to distinguish beneficial aspects of the technology from a desire for a "silver bullet" for device security, verifiable logistics, or "saving democracy". The problem: blockchain introduces new security challenges - and blind adoption without understanding reduces overall security. In this talk, Melanie Rieback and Klaus Kursawe explain the pitfalls and limits of blockchain, so you can avoid making your applications LESS secure.
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
Networking is a core part of computing in the digital world we inhabit. But, how well do you know how it works? Do you understand all the moving parts of the OSI stack inside your computer, and how the network is actually put together? How can this ever work? This guided safari of layers, standards, protocols, and happenstance will bring us close to the copper wire, and up through the layers of CDMA/CD, ARP, routing and HTTP. We will make a few excursions through patchworks that still work forty years later, and cleverly designed mechanisms that show that simplicity is the only way to last.
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
Performance tests are not only an important instrument for understanding a system and its runtime environment. It is also essential in order to check stability and scalability – non-functional requirements that might be decisive for success. But won't my cloud hosting service scale for me as long as I can afford it? Yes, but… It only operates and scales resources. It won't automatically make your system fast, stable and scalable. This talk shows how such and comparable questions can be clarified with performance tests and how DevOps teams benefit from regular test practise.
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
Sascha will demonstrate the opportunities and challenges of Conversational AI learned from the practice. Both Technology and User Experience will be covered introducing a process finding micro-moments, writing happy paths, gathering intents, designing the conversational flow, and finally publishing on almost all channels including Voice Services and Chatbots. Valuable for enterprises, developers, and designers. All live on stage in just minutes and with almost no code.
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
A key challenge we face at Pacmed is quickly calibrating and deploying our tools for clinical decision support in different hospitals, where data formats may vary greatly. Using Intensive Care Units as a case study, I’ll delve into our scalable Python pipeline, which leverages Pandas’ split-apply-combine approach to perform complex feature engineering and automatic quality checks on large time-varying data, e.g. vital signs. I’ll show how we use the resulting flexible and interpretable dataframes to quickly (re)train our models to predict mortality, discharge, and medical complications.
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
Coolblue is a proud Dutch company, with a large internal development department; one that truly takes CI/CD to heart. Empowerment through automation is at the heart of these development teams, and with more than 1000 deployments a day, we think it's working out quite well. In this session, Pat Hermens (a Development Managers) will step you through what enables us to move so quickly, which tools we use, and most importantly, the mindset that is required to enable development teams to deliver at such a rapid pace.
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
Quantum computers can use all of the possible pathways generated by quantum decisions to solve problems that will forever remain intractable to classical compute power. As the mega players vie for quantum supremacy and Rigetti announces its $1M "quantum advantage" prize, we live in exciting times. IBM-Q and Microsoft Q# are two ways you can learn to program quantum computers so that you're ready when the quantum revolution comes. I'll demonstrate some quantum solutions to problems that will forever be out of reach of classical, including organic chemistry and large number factorisation.
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
Chinese food exploded across America in the early 20th century, rapidly adapting to local tastes while also spreading like wildfire. How was it able to spread so fast? The GY6 is a family of scooter engines that has achieved near total ubiquity in Europe. It is reliable and cheap to manufacture, and it's made in factories across China. How are these factories able to remain afloat? Chinese-American food and the GY6 are both riveting studies in product-market fit, and both are the product of a distributed open source-like development model. What lessons can we learn for open source software?
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
The design space has exploded in size within the last few years and Sketch is one of the most important milestones to represent the phenomenon. But behind the scenes of this growing reality there is a remote team that revolutionizes the design space all without leaving the home office. This talk will present how Sketch has grown to become a modern, product designer's tool.
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
Would you fly in a plane designed by a craftsman or would you prefer your aircraft to be designed by engineers? We are learning that science and empiricism works in software development, maybe now is the time to redefine what “Software Engineering” really means. Software isn't bridge-building, it is not car or aircraft development either, but then neither is Chemical Engineering. Engineering is different in different disciplines. Maybe it is time for us to begin thinking about retrieving the term "Software Engineering" maybe it is time to define what our "Engineering" discipline should be.
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
What is the job of a CTO and how does it change as a startup grows in size and scale? As a CTO, where should you spend your focus? As an engineer aspiring to be a CTO, what skills should you pursue? In this inspiring and personal talk, I describe my journey from early Red Hat engineer to CTO at Bloomon. I will share my view on what it means to be a CTO, and ultimately answer the question: Should the CTO be coding?
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
13. Temporal decoupling with events and read models
Checkout
Payment
Inventory
Shipment
Good
Stored
Read
Model
Good
Fetched
The button blinks if we can
ship within 24 hours
*Events are facts about what happened (in the past)
17. The danger is that it's very easy to make
nicely decoupled systems with event
notification, without realizing that you're
losing sight of that larger-scale flow, and
thus set yourself up for trouble in future
years.
https://martinfowler.com/articles/201701-event-driven.html
18. The danger is that it's very easy to make
nicely decoupled systems with event
notification, without realizing that you're
losing sight of that larger-scale flow, and
thus set yourself up for trouble in future
years.
https://martinfowler.com/articles/201701-event-driven.html
19. The danger is that it's very easy to make
nicely decoupled systems with event
notification, without realizing that you're
losing sight of that larger-scale flow, and
thus set yourself up for trouble in future
years.
https://martinfowler.com/articles/201701-event-driven.html
24. Order
Extract the end-to-end responsibility
Checkout
Payment
Inventory
Shipment
*Commands have an intent about
what needs to happen in the future
Order
placed
Payment
received
Retrieve
payment
34. Example
Order Payment
Client of dumb endpoints easily become a god services.
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Rejected
35. Payment
failed
Who is responsible to deal with problems?
Order Payment
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Payment
received
36. Payment
failed
Who is responsible to deal with problems?
Order Payment
Clients of smart endpoints remains lean.
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Payment
received
Smart endpoints are
potentially long-running
45. We are having some technical
difficulties and cannot present you
your boarding pass right away.
But we do actively retry ourselves, so
lean back, relax and we will send it
on time.
51. Avoid the wrong tools!
Death by properties panel
Low-code is great!
(You can get rid
of your developers!)
Complex, proprietary, heavyweight, central, developer adverse, …
57. public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow") //
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
What do I mean by
„leightweight?“
58. public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow") //
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
Build engine
in one line of
code
(using in-
memory H2)
59. public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow")
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
Define flow
e.g. in Java
DSL
60. public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow")
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
Define flow
e.g. in Java
DSL
75. begin commit
{local TX}
Customer Credit Service
begin commit
{local TX}
Customer Credit Service
begin commit
{local TX}
Credit Card Service
Saga
Coordinator
A workflow engine can serve as Saga coordinator
89. Wrap-up
Checkout
Payment
Inventory
Shipment
Event-driven is often benefitial, but don‘t do
peer-to-peer event chains for complex flows
A lot of poblems exist independant of sync/async
communication (just the stack differs)
Getting your services to collaborate and sort out
consistency is the challenge. There is a lot of need
for state handling. Workflow engines can help.
Don‘t forget about orchestration. It should be
distributed and owned by services
90. Wrap-up
Checkout
Payment
Inventory
Shipment
Event-driven is often benefitial, but don‘t do
peer-to-peer event chains for complex flows
A lot of poblems exist independant of sync/async
communication (just the stack differs)
Getting your services to collaborate and sort out
consistency is the challenge. There is a lot of need
for state handling. Workflow engines can help.
Don‘t forget about orchestration. It should be
distributed and owned by services
91. Wrap-up
Checkout
Payment
Inventory
Shipment
Event-driven is often benefitial, but don‘t do
peer-to-peer event chains for complex flows
A lot of poblems exist independant of sync/async
communication (just the stack differs)
Getting your services to collaborate and sort out
consistency is the challenge. There is a lot of need
for state handling. Workflow engines can help.
Don‘t forget about orchestration. It should be
distributed and owned by services
Order
92. Wrap-up
Checkout
Payment
Inventory
Shipment
Event-driven is often benefitial, but don‘t do
peer-to-peer event chains for complex flows
A lot of poblems exist independant of sync/async
communication (just the stack differs)
Getting your services to collaborate and sort out
consistency is the challenge. There is a lot of need
for state handling. Workflow engines can help.
Don‘t forget about orchestration. It should be
distributed and owned by services
Order
93. Wrap-up
Checkout
Payment
Inventory
Shipment
Event-driven is often benefitial, but don‘t do
peer-to-peer event chains for complex flows
A lot of poblems exist independant of sync/async
communication (just the stack differs)
Getting your services to collaborate and sort out
consistency is the challenge. There is a lot of need
for state handling. Workflow engines can help.
Don‘t forget about orchestration. It should be
distributed and owned by services
Order
Stateful
retry
Long running
orchestration
Saga
Timeouts