Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Agile India
f you’re a software developer or architect who wants to play a more influential role in ensuring your software systems are optimised to support business goals, then you need to learn about the benefits and techniques of modern strategic domain-driven design.
Many people think that DDD is about software design patterns, but that’s only a small part, and the least important part of DDD. In fact, Eric Evans wishes he’d focused more on the strategic aspects of DDD in his famous book (Domain-Driven Design: Tackling Complexity in the Heart of Software) and pushed the tactical coding patterns to the back!
Strategic domain-driven design is about truly understanding the business domain. It involves collaboratively modelling business processes using advanced modelling techniques, like Event Storming and Domain Storytelling, with domain experts on an ongoing basis.
One of the core outcomes of strategic DDD is identifying cohesive modules, known as bounded context. Bounded contexts help you to create a maintainable, comprehensible codebase by isolating dependencies and delineating concepts that reference different classes of business value.
In this talk, you’ll see many of the most effective bounded context design heuristics, recurring patterns in the wild, and you’ll learn how to facilitate those vital modelling sessions so you can lead the adoption of strategic DDD in your organisation.
More details:
https://confengine.com/agile-india-2019/proposal/8100/strategic-domain-driven-design
Conference link: https://2019.agileindia.org
Using patterns and pattern languages to make better architectural decisions Chris Richardson
This is a presentation that gave at the O'Reilly Software Architecture Superstream: Software Architecture Patterns.
The talk's focus is the microservices pattern language.
However, it also shows how thinking with the pattern mindset - context/problem/forces/solution/consequences - leads to better technically decisions.
The microservices architecture offers tremendous benefits, but it’s not a silver bullet. It also has some significant drawbacks. The microservices pattern language—a collection of patterns that solve architecture, design, development, and operational problems—enables software developers to apply the microservices architecture effectively. I provide an overview of the microservices architecture and examines the motivations for the pattern language, then takes you through the key patterns in the pattern language.
A common microservice architecture anti-pattern is more the merrier. It occurs when an organization team builds an excessively fine-grained architecture, e.g. one service-per-developer. In this talk, you will learn about the criteria that you should consider when deciding service granularity. I'll discuss the downsides of a fine-grained microservice architecture. You will learn how sometimes the solution to a design problem is simply a JAR file.
During the CXL Forum at OCP Summit, Navneeth Kankani, Bo Ling, and Baojun Liu of Uber, described the experimentation being done by Uber to leverage CXL technology help the company scale its infrastructure.
Saturn 2018: Managing data consistency in a microservice architecture using S...Chris Richardson
A revised and extended version that I gave at Saturn 2018.
The services in a microservice architecture must be loosely coupled and so cannot share database tables. What’s more, two phase commit (a.k.a. a distributed transaction) is not a viable option for modern applications. Consequently, a microservices application must use the Saga pattern, which maintains data consistency using a series of local transactions.
In this presentation, you will learn how sagas work and how they differ from traditional transactions. We describe how to use sagas to develop business logic in a microservices application. You will learn effective techniques for orchestrating sagas and how to use messaging for reliability. We will describe the design of a saga framework for Java and show a sample application.
User Story Mapping, Discover the whole storyJeff Patton
Variations of these slides have been used in a variety of talks.
These slides support discussions on why stories work, and when they don't. And, on story mapping, how and why it works.
QConPlus 2021: Minimizing Design Time Coupling in a Microservice ArchitectureChris Richardson
Delivering large, complex software rapidly, frequently and reliably requires a loosely coupled organization. DevOps teams should rarely need to communicate and coordinate in order to get work done. Conway's law states that an organization and the architecture that it develops mirror one another. Hence, a loosely coupled organization requires a loosely coupled architecture.
In this presentation, you will learn about design-time coupling in a microservice architecture and why it's essential to minimize it. I describe how to design service APIs to reduce coupling. You will learn how to minimize design-time coupling by applying a version of the DRY principle. I describe how key microservices patterns potentially result in tight design time coupling and how to avoid it.
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Agile India
f you’re a software developer or architect who wants to play a more influential role in ensuring your software systems are optimised to support business goals, then you need to learn about the benefits and techniques of modern strategic domain-driven design.
Many people think that DDD is about software design patterns, but that’s only a small part, and the least important part of DDD. In fact, Eric Evans wishes he’d focused more on the strategic aspects of DDD in his famous book (Domain-Driven Design: Tackling Complexity in the Heart of Software) and pushed the tactical coding patterns to the back!
Strategic domain-driven design is about truly understanding the business domain. It involves collaboratively modelling business processes using advanced modelling techniques, like Event Storming and Domain Storytelling, with domain experts on an ongoing basis.
One of the core outcomes of strategic DDD is identifying cohesive modules, known as bounded context. Bounded contexts help you to create a maintainable, comprehensible codebase by isolating dependencies and delineating concepts that reference different classes of business value.
In this talk, you’ll see many of the most effective bounded context design heuristics, recurring patterns in the wild, and you’ll learn how to facilitate those vital modelling sessions so you can lead the adoption of strategic DDD in your organisation.
More details:
https://confengine.com/agile-india-2019/proposal/8100/strategic-domain-driven-design
Conference link: https://2019.agileindia.org
Using patterns and pattern languages to make better architectural decisions Chris Richardson
This is a presentation that gave at the O'Reilly Software Architecture Superstream: Software Architecture Patterns.
The talk's focus is the microservices pattern language.
However, it also shows how thinking with the pattern mindset - context/problem/forces/solution/consequences - leads to better technically decisions.
The microservices architecture offers tremendous benefits, but it’s not a silver bullet. It also has some significant drawbacks. The microservices pattern language—a collection of patterns that solve architecture, design, development, and operational problems—enables software developers to apply the microservices architecture effectively. I provide an overview of the microservices architecture and examines the motivations for the pattern language, then takes you through the key patterns in the pattern language.
A common microservice architecture anti-pattern is more the merrier. It occurs when an organization team builds an excessively fine-grained architecture, e.g. one service-per-developer. In this talk, you will learn about the criteria that you should consider when deciding service granularity. I'll discuss the downsides of a fine-grained microservice architecture. You will learn how sometimes the solution to a design problem is simply a JAR file.
During the CXL Forum at OCP Summit, Navneeth Kankani, Bo Ling, and Baojun Liu of Uber, described the experimentation being done by Uber to leverage CXL technology help the company scale its infrastructure.
Saturn 2018: Managing data consistency in a microservice architecture using S...Chris Richardson
A revised and extended version that I gave at Saturn 2018.
The services in a microservice architecture must be loosely coupled and so cannot share database tables. What’s more, two phase commit (a.k.a. a distributed transaction) is not a viable option for modern applications. Consequently, a microservices application must use the Saga pattern, which maintains data consistency using a series of local transactions.
In this presentation, you will learn how sagas work and how they differ from traditional transactions. We describe how to use sagas to develop business logic in a microservices application. You will learn effective techniques for orchestrating sagas and how to use messaging for reliability. We will describe the design of a saga framework for Java and show a sample application.
User Story Mapping, Discover the whole storyJeff Patton
Variations of these slides have been used in a variety of talks.
These slides support discussions on why stories work, and when they don't. And, on story mapping, how and why it works.
QConPlus 2021: Minimizing Design Time Coupling in a Microservice ArchitectureChris Richardson
Delivering large, complex software rapidly, frequently and reliably requires a loosely coupled organization. DevOps teams should rarely need to communicate and coordinate in order to get work done. Conway's law states that an organization and the architecture that it develops mirror one another. Hence, a loosely coupled organization requires a loosely coupled architecture.
In this presentation, you will learn about design-time coupling in a microservice architecture and why it's essential to minimize it. I describe how to design service APIs to reduce coupling. You will learn how to minimize design-time coupling by applying a version of the DRY principle. I describe how key microservices patterns potentially result in tight design time coupling and how to avoid it.
Python tools to deploy your machine learning models fasterJeff Hale
Comparing Gradio, Streamlit, and FastAPI (with a little discussion of flask)
Jeff Hale's presentation for Data Science DC March 8, 2022
Repository with code at https://github.com/discdiver/dsdc-deploy-models
Clean Architecture helps you build applications that are Independent of Frameworks, UI, Database or any external agency. This talk will be an introduction to Clean Architecture principles and system design in Python. We will choose a sample application and walk through a simple use case of creating clean code.
What you will gain from this talk:
* Grow your application with confidence
* Build applications to be independent of infrastructure like Web Frameworks, Database etc.
* Avoid mixing of business logic across different layers of your application
* Test close to 100% of your core business logic
* Keep your tests fast and independent of infrastructure (DB, Web Layer etc.)
For this plenary talk at the Charlotte AI Institute for Smarter Learning, Dr. Cori Faklaris introduces her fellow college educators to the exciting world of generative AI tools. She gives a high-level overview of the generative AI landscape and how these tools use machine learning algorithms to generate creative content such as music, art, and text. She then shares some examples of generative AI tools and demonstrate how she has used some of these tools to enhance teaching and learning in the classroom and to boost her productivity in other areas of academic life.
Have you always wanted a flexible & interactive visualization that is easy for others to work with without handling all the Javascript libraries? Or do you want to build a user interface for your Machine Learning Model? This talk has you covered with building data apps in Python using Streamlit. It was presented at the Pyjamas Conference held virtualy across December 5th & 6th, 2020 (https://pyjamas.live/)
GENERATIVE AI, THE FUTURE OF PRODUCTIVITYAndre Muscat
Discuss the impact and opportunity of using Generative AI to support your development and creative teams
* Explore business challenges in content creation
* Cost-per-unit of different types of content
* Use AI to reduce cost-per-unit
* New partnerships being formed that will have a material impact on the way we search and engage with content
Part 4 of a 9 Part Research Series named "What matters in AI" published on www.andremuscat.com
This is my presentation at DDD eXchange New York, about Event Storming and the broader concept of Model Storming and the various modeling and problem solving techniques that we've been experimenting in the last months.
Domain Driven Design - Strategic Patterns and MicroservicesRadosław Maziarka
Presentation describes Domain Driven Design - approach to create applications driven by business domain. I show how to split your monolith base on DDD strategic patterns.
Kong Summit 2018 - Microservices: decomposing applications for testability an...Chris Richardson
In this presentation, I describe the essential characteristics of the microservice architecture. You will learn about the benefits and drawbacks of the microservice architecture and when it makes sense to use it. I discuss how the microservice architecture is not a silver bullet. You will learn about the microservice pattern language, which is a collection of patterns that solve architecture and design issues that you will encounter when using microservices.
Collecting requirements or understanding a large system seems such a long and demanding activity. We can do al lot better than this: unlimited modelling space and all the key stakeholder in the same room, with some special spice. :-)
Domain-Driven Design has never been so efficient. This is where DDD meets Kanban, TOC and Management 3.0.
This talk showcases how to use TensorFlow Lite models on mobile devices to create artistic designs. There is a brief overview of how AI can be used to assist and inspire the artists and designers in their creative space. You will also learn about the open-source computer vision and deep learning tools, and use cases of AI for art and design. This talk is for you whether you are an artist or designer who would like to learn more about AI/ML; or an engineer and anyone who is interested in creating art & design with AI, in particular with mobile apps.
Grokking Techtalk #45: First Principles ThinkingGrokking VN
Bạn có từng nghe ai đó nói về First Principles Thinking? Nó là gì và engineers chúng ta có thể sử dụng như thế nào cho công việc của mình?
---
First Principles Thinking là một trong những phương pháp mà chúng ta có thể vận dụng để phân chia những vấn đề phức tạp thành những vấn đề nhỏ và cơ bản hơn có thể giải quyết được, cuối cùng tổng hợp lại thành một giải pháp có thể giải quyết được vấn đề phức tạp ban đầu.
Nối tiếp về chủ đề Problem Solving, trong Techtalk lần này, Grokking Vietnam cùng Gambaru sẽ mang đến cho các bạn thêm một góc nhìn về tư duy giải quyết vấn đề. Chúng ta sẽ cùng gặp gỡ anh Hùng Đoàn - exFacebook và hiện đang là Software Engineer tại Coda và cùng nhau thảo luận sâu hơn về chủ đề First Principles Thinking này nhé.
Nội dung bài talk:
* Analogy thinking
* Breaking a problem space down to its building blocks
* Techniques to arrive at first principles thinking
* Application in Programming
---
Ngôn ngữ: Tiếng Việt
---
Speaker:
- Hùng Đoàn - Software Engineer @ Coda.io, Ex-Facebook SWE
Anh Hùng có nhiều năm kinh nghiệm trong các lĩnh vực thuộc software engineering. Anh từng thi quốc gia tin học quốc tế và đoạt huy chương vào 2007
This is a talk I gave at PLoP 2017 - http://www.hillside.net/plop/2017/index.php?nav=program
The microservice architecture is growing in popularity. It is an architectural style that structures an application as a set of loosely coupled services that are organized around business capabilities. Its goal is to enable the continuous delivery of large, complex applications. However, the microservice architecture is not a silver bullet and it has some significant drawbacks.
The goal of the microservices pattern language is to enable software developers to apply the microservice architecture effectively. It is a collection of patterns that solve architecture, design, development and operational problems. In this talk, I’ll provide an overview of the microservice architecture and describe the motivations for the pattern language. You will learn about the key patterns in the pattern language.
The Soft Skills of Great Software DevelopersTechWell
Are you creating clean, high performing code? Are you following the right development practices, but still don’t feel you are getting the recognition or success you deserve? The truth is that working harder and improving your programming skills are not enough. Great developers must demonstrate the human skills—developer practices—necessary to have a strong impact on their organizations. Through conversation and examples, Raul Suarez focuses on behaviors that can help you reach your full potential. He discusses ways to optimize communication, provide and handle feedback, adapt to change, navigate politics, use your time effectively, and raise your profile. Don't remain stuck in your career, waiting for someone to notice you. Take control! Reach out for mentorship and give your career a boost by demonstrating the attitude and behaviors of successful professionals. There will be time to address your specific concerns, challenges, and frustrations—so bring your questions. Development practices help you create good software; developer practices help you build a successful career.
Introduction to monte-carlo analysis for software development - Troy Magennis...Troy Magennis
Forecasting and managing software development project risks & uncertainty. Monte-carlo analysis is the tool of choice for managing risk in many fields where risk is an inherent part of doing business. This paper examines how to use monte-carlo techniques to understand and leverage risk in Software Development projects and teams.
Updated: Should you be using an Event Driven ArchitectureJeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
Software Design ... a nice expression, uh? But what does it mean to "design a software"? What are the prerequisites? What are the pitfalls to avoid? As Software Designers we would like to highlight on what makes us build simple, useful and above all effective software. And of course, we will talk about Domain-Driven Design in that journey ;-)
Talk made at http://domain-driven-design.eu/the-art-of-design/
Python tools to deploy your machine learning models fasterJeff Hale
Comparing Gradio, Streamlit, and FastAPI (with a little discussion of flask)
Jeff Hale's presentation for Data Science DC March 8, 2022
Repository with code at https://github.com/discdiver/dsdc-deploy-models
Clean Architecture helps you build applications that are Independent of Frameworks, UI, Database or any external agency. This talk will be an introduction to Clean Architecture principles and system design in Python. We will choose a sample application and walk through a simple use case of creating clean code.
What you will gain from this talk:
* Grow your application with confidence
* Build applications to be independent of infrastructure like Web Frameworks, Database etc.
* Avoid mixing of business logic across different layers of your application
* Test close to 100% of your core business logic
* Keep your tests fast and independent of infrastructure (DB, Web Layer etc.)
For this plenary talk at the Charlotte AI Institute for Smarter Learning, Dr. Cori Faklaris introduces her fellow college educators to the exciting world of generative AI tools. She gives a high-level overview of the generative AI landscape and how these tools use machine learning algorithms to generate creative content such as music, art, and text. She then shares some examples of generative AI tools and demonstrate how she has used some of these tools to enhance teaching and learning in the classroom and to boost her productivity in other areas of academic life.
Have you always wanted a flexible & interactive visualization that is easy for others to work with without handling all the Javascript libraries? Or do you want to build a user interface for your Machine Learning Model? This talk has you covered with building data apps in Python using Streamlit. It was presented at the Pyjamas Conference held virtualy across December 5th & 6th, 2020 (https://pyjamas.live/)
GENERATIVE AI, THE FUTURE OF PRODUCTIVITYAndre Muscat
Discuss the impact and opportunity of using Generative AI to support your development and creative teams
* Explore business challenges in content creation
* Cost-per-unit of different types of content
* Use AI to reduce cost-per-unit
* New partnerships being formed that will have a material impact on the way we search and engage with content
Part 4 of a 9 Part Research Series named "What matters in AI" published on www.andremuscat.com
This is my presentation at DDD eXchange New York, about Event Storming and the broader concept of Model Storming and the various modeling and problem solving techniques that we've been experimenting in the last months.
Domain Driven Design - Strategic Patterns and MicroservicesRadosław Maziarka
Presentation describes Domain Driven Design - approach to create applications driven by business domain. I show how to split your monolith base on DDD strategic patterns.
Kong Summit 2018 - Microservices: decomposing applications for testability an...Chris Richardson
In this presentation, I describe the essential characteristics of the microservice architecture. You will learn about the benefits and drawbacks of the microservice architecture and when it makes sense to use it. I discuss how the microservice architecture is not a silver bullet. You will learn about the microservice pattern language, which is a collection of patterns that solve architecture and design issues that you will encounter when using microservices.
Collecting requirements or understanding a large system seems such a long and demanding activity. We can do al lot better than this: unlimited modelling space and all the key stakeholder in the same room, with some special spice. :-)
Domain-Driven Design has never been so efficient. This is where DDD meets Kanban, TOC and Management 3.0.
This talk showcases how to use TensorFlow Lite models on mobile devices to create artistic designs. There is a brief overview of how AI can be used to assist and inspire the artists and designers in their creative space. You will also learn about the open-source computer vision and deep learning tools, and use cases of AI for art and design. This talk is for you whether you are an artist or designer who would like to learn more about AI/ML; or an engineer and anyone who is interested in creating art & design with AI, in particular with mobile apps.
Grokking Techtalk #45: First Principles ThinkingGrokking VN
Bạn có từng nghe ai đó nói về First Principles Thinking? Nó là gì và engineers chúng ta có thể sử dụng như thế nào cho công việc của mình?
---
First Principles Thinking là một trong những phương pháp mà chúng ta có thể vận dụng để phân chia những vấn đề phức tạp thành những vấn đề nhỏ và cơ bản hơn có thể giải quyết được, cuối cùng tổng hợp lại thành một giải pháp có thể giải quyết được vấn đề phức tạp ban đầu.
Nối tiếp về chủ đề Problem Solving, trong Techtalk lần này, Grokking Vietnam cùng Gambaru sẽ mang đến cho các bạn thêm một góc nhìn về tư duy giải quyết vấn đề. Chúng ta sẽ cùng gặp gỡ anh Hùng Đoàn - exFacebook và hiện đang là Software Engineer tại Coda và cùng nhau thảo luận sâu hơn về chủ đề First Principles Thinking này nhé.
Nội dung bài talk:
* Analogy thinking
* Breaking a problem space down to its building blocks
* Techniques to arrive at first principles thinking
* Application in Programming
---
Ngôn ngữ: Tiếng Việt
---
Speaker:
- Hùng Đoàn - Software Engineer @ Coda.io, Ex-Facebook SWE
Anh Hùng có nhiều năm kinh nghiệm trong các lĩnh vực thuộc software engineering. Anh từng thi quốc gia tin học quốc tế và đoạt huy chương vào 2007
This is a talk I gave at PLoP 2017 - http://www.hillside.net/plop/2017/index.php?nav=program
The microservice architecture is growing in popularity. It is an architectural style that structures an application as a set of loosely coupled services that are organized around business capabilities. Its goal is to enable the continuous delivery of large, complex applications. However, the microservice architecture is not a silver bullet and it has some significant drawbacks.
The goal of the microservices pattern language is to enable software developers to apply the microservice architecture effectively. It is a collection of patterns that solve architecture, design, development and operational problems. In this talk, I’ll provide an overview of the microservice architecture and describe the motivations for the pattern language. You will learn about the key patterns in the pattern language.
The Soft Skills of Great Software DevelopersTechWell
Are you creating clean, high performing code? Are you following the right development practices, but still don’t feel you are getting the recognition or success you deserve? The truth is that working harder and improving your programming skills are not enough. Great developers must demonstrate the human skills—developer practices—necessary to have a strong impact on their organizations. Through conversation and examples, Raul Suarez focuses on behaviors that can help you reach your full potential. He discusses ways to optimize communication, provide and handle feedback, adapt to change, navigate politics, use your time effectively, and raise your profile. Don't remain stuck in your career, waiting for someone to notice you. Take control! Reach out for mentorship and give your career a boost by demonstrating the attitude and behaviors of successful professionals. There will be time to address your specific concerns, challenges, and frustrations—so bring your questions. Development practices help you create good software; developer practices help you build a successful career.
Introduction to monte-carlo analysis for software development - Troy Magennis...Troy Magennis
Forecasting and managing software development project risks & uncertainty. Monte-carlo analysis is the tool of choice for managing risk in many fields where risk is an inherent part of doing business. This paper examines how to use monte-carlo techniques to understand and leverage risk in Software Development projects and teams.
Updated: Should you be using an Event Driven ArchitectureJeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
Software Design ... a nice expression, uh? But what does it mean to "design a software"? What are the prerequisites? What are the pitfalls to avoid? As Software Designers we would like to highlight on what makes us build simple, useful and above all effective software. And of course, we will talk about Domain-Driven Design in that journey ;-)
Talk made at http://domain-driven-design.eu/the-art-of-design/
Introduced by Eric Evans in 2004 via his Blue Book, Domain Driven Design (DDD) has received tremendous positive feedbacks from many developers & communities over the years. On the other hand, we have to admit that DDD has since not been widely used in the trenches or within most of our development projects... How can we explain such failure in its diffusion? Is DDD in itself difficult or is it just the way people used to present it which makes it hard to grasp and inaccessible? Through our various (more or less successful ;-) experiences, we will try to highlight what DDD is using a simple and more accessible approach. The opportunity for us is to show you how helpful it can be for your day-to-day projects. Wouldn't be the perfect time for all of us to ease the DDD onboarding for beginners and to reboot DDD for experts?
Avez-vous déjà eu l'impression de vous être assoupis dans votre carrière, de faire moins de veille qu'à d'autres périodes ? A l'inverse, vous êtes-vous déjà demandé comment sortir du ronron ambiant et "réveiller" vos collègues qui vous semblaient manquer de curiosité et de passion sur un projet ?
Cette courte session vise à vous présenter toutes les formules et astuces qui ont permis à très peu de gens chez nous de réveiller une grosse organisation qui s'endormait sur ses lauriers. Si on a réussi ici -sandwichs à la main- pourquoi pas vous ? Attention: effet contagieux ;-)
Comment concevoir des systèmes capables d’encaisser des dizaines de milliers d’updates par seconde sans s’engorger, ni dépasser la milli seconde de traitement ? Comment écrire du code scalable qui reste lisible –mais garanti 100% sans deadlock ? Que recouvre le reactive manifesto et les termes : conflation, sequencer, immutable state ? Après vous avoir présenté les besoins et contraintes du trading électronique, nous répondrons à toutes ces questions dans une session qui s'annonce...technique.
Decouvrir CQRS (sans Event sourcing) par la pratiqueThomas Pierrain
Introduction à CQRS présentée aux MS experiences 2016 (Palais des Congrès) par Thomas PIERRAIN, en compagnie de Bruno BOUCARD, Tomasz JASKULA et Eric VERNIE.
TDD is dead?!? Let's do an autospy (ncrafts.io)Thomas Pierrain
Why we are still stuck with TDD nowadays? Through several facts & stories from the trenches, we will see why most of us still have not managed to grasp or to sustain the TDD experience.
Wouldn't be a good opportunity to meditate about how we are thinking? And why not, thinking outside of the box to get a better feeling of the TDD soul.
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasChris Richardson
This is a presentation I gave at QCONSF 2017
The services in a microservice architecture must be loosely coupled and so cannot share database tables. What’s more, two phase commit (a.k.a. a distributed transaction) is not a viable option for modern applications. Consequently, a microservices application must use the Saga pattern, which maintains data consistency using a series of local transactions.
In this presentation, you will learn how sagas work and how they differ from traditional transactions. We describe how to use sagas to develop business logic in a microservices application. You will learn effective techniques for orchestrating sagas and how to use messaging for reliability. We will describe the design of a saga framework for Java and show a sample application.
Windows Containers and Docker: Why You Should CareElton Stoneman
You can run Docker on Windows natively with Windows 10 and Windows Server 2016 - but should you migrate your apps to Docker containers? This deck suggests the value case for moving to Docker, looking at how it can help you with a roadmap to adopt the major technology trends - DevOps, Cloud Computing and Microservices - and also how it can help you be more effective today.
Slides présentés avant un Event Storming géant organisé au MS experiences (Palais des Congrès) par Thomas PIERRAIN, Bruno BOUCARD, Tomasz JASKULA et Eric VERNIE.
https://experiences.microsoft.fr/Event/session/atelier-1-decouvrir-son-sujet-grace-a-levent/2a6658ef-4074-e611-80c3-000d3a2229a6
Compartilho aqui a minha apresentação que eu tive a honra de apresentar no primeiro MeetUp .NET Inside realizado na Stone Rio de Janeiro, palestrei sobre Microservices, .NET Core e Serverless. Sou grato por poder levar um pouco que eu sei para compartilhar com a plateia muito cheia e participativo.
Coder sans peur du changement avec la meme pas mal hexagonal architectureThomas Pierrain
Découvrez en pratique l'architecture hexagonale, indispensable pour vos applications complexes !
Ce style d'architecture permet d'adapter votre code à tout changement de technologie sans souffrir. Si vous aimez changer de frameworks ou de librairies, tester correctement ou appliquer le Domain-Driven Design, alors vous avez besoin d'architecture hexagonale !
Avec des exemples en code Java, et au travers d’un kata d’architecture auquel vous pourrez participer, nous vous montrerons les pièges à éviter et comment mettre en œuvre ce pattern sans trop galérer, et ce dès votre retour au bureau !
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with DockerElton Stoneman
Using Docker with Windows Server 2016 to modernize ASP.NET applications - a feature-driven approach. Starting with an ASP.NET WebForms apps, how to run the app in Docker and then modernize it using the Docker platform. From NDC London 2017.
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...Javier García Magna
Good technical practices you can follow with (micro)services but can be applied to almost anything: discovery (microphone/consul), security, resilience (polly), composition, ssecurity (jwt/oauth2)... And then an example with a CQRS application, and how docker can be used in Windows 2016. Lastly a brief summary of what Service Fabric is and its programming models.
Faible latence, haut debit PerfUG (Septembre 2014)Thomas Pierrain
vidéo disponible : http://tv.octo.com/videos/les-secrets-de-la-finance-pour-avoir-des-systemes-reactifs/
Comment concevoir des systèmes capables d’encaisser des dizaines de milliers d’updates par seconde sans s’engorger, ni dépasser la milli seconde de traitement ?
Comment écrire du code scalable qui reste lisible –mais garanti 100% sans deadlock ? Que recouvre le reactive manifesto ? et les termes : conflation, sequencer, immutable state ?
Après vous avoir présenté les besoins et contraintes du trading électronique, nous répondrons à toutes ces questions dans une session … résolument réactive.
Note: il s'agit de la présentation que nous avions faîte à DEVOXX France en Avril 2014, mais revue et corrigée pour notre session au PerfUG de Septembre (avec une nouvelle charte graphique donc)
Docker and Windows: The State of the UnionElton Stoneman
Session from Docker London, covering Docker on Windows:
- the Docker platform on Windows
- limitations and differences
- Dockerizing Windows applications
- running a hybrid swarm
Solving distributed data management problems in a microservice architecture (...Chris Richardson
This is a talk that I gave the SFBay Area Microservices and Cloud Native Apps meetup: https://www.meetup.com/microservices/events/241894841/
In a microservice architecture, each service has a private datastore in order to ensure that the services are loosely coupled. While loose coupling is essential, this architecture makes managing transactions and querying difficult. You can’t use traditional distributed transactions. Nor can you use distributed queries. In this talk you will learn about some patterns for solving these problems: Sagas, API Composition and Command Query Responsibility Segregation (CQRS).
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Chris Richardson
In this talk we share our experiences developing and deploying a microservices-based application. You will learn about the distributed data management challenges that arise in a microservices architecture. We will describe how we solved them using event sourcing to reliably publish events that drive eventually consistent workflows and pdate CQRS-based views. You will also learn how we build and deploy the application using a Jenkins-based deployment pipeline that creates Docker images that run on Amazon EC2.
This talk was given at the Berlin Microxchg conference and the Munich microservices meetup.
Awesome Tools to Level Up Your Spring Cloud Architecture - Spring I/O 2017Andreas Evers
Documenting, testing, troubleshooting, and monitoring highly distributed systems in microservice architectures is hard. Finding quality, complementary tools in the wilds of open source can be even harder. Join this talk for a pragmatic look at taming some of the challenges of running microservices in production.
Semplificare l'observability per progetti ServerlessLuciano Mammino
Hai mai pensato che le tue lambda functions possano fallire senza che tu te ne accorga? Se la risposta é "SI" probabilmente é perché ti sei giá "bruciato" giocando con il cloud, dove errori e fallimenti sono sempre dietro l'angolo. Purtroppo non possiamo prevenire tutti i fallimenti, pero' possiamo essere notificati quando qualcosa va storto cosí da poter reagire tempestivamente. Ma come fare a configurare il nostro ambiente AWS per raggiungere un buon livello di "Observability"? Se hai giá provato ad utilizzare CloudWatch saprai giá quanto possa essere complesso. In questo talk, esploreremo il tema dell'observability per applicazioni Serverless su AWS. Discuteremo problemi e best practices. Infine vi proporró un tool che permette di automatizzare la configurazione di CloudWatch per l'80% delle esigenze in pochi minuti!
Understanding the network's role in cloud computing requires understanding the effect of cloud computing on networking. The end result is five key trends in cloud networking, as presented by James Urquhart from Cisco Systems, and author of CNET's The Wisdom of Clouds
Security in a Site Reliability Engineering (SRE) context with a focus on being pragmatic just makes sense. In this talk, we will look at 4 key areas where SRE and Security tribes can join forces and influence the overall business. This is a lab/discussion session.
Orchestrate CEO Antony Falco, talks about the future of software development.
Fast-track development and save 50-90% off your database costs. Sign up for a free Orchestrate account today: http://nodb.co/1wzT7Xj
How are microservices in 2017 different from how we used to build them at the beginning of the decade?
More traditional Service-Oriented Architectures were defined by protocols and standards published and curated by industry consortiums. Knowledge of the architectural style usually called "microservices", on the other hand, is often in the form of patterns, cautionary tales, and tools extracted from real-world reports and software made available by organisations that have adopted this style.
Almost ten years since the first wave of such reports, the landscape has changed considerably. Many hard challenges from the past have been eased or completely solved, and a lot of the custom software created by the microservices pioneers have been made off-the-shelf open source software.
In this talk, Phil Calçado will contrast what we first found in the first generation of microservices architectures against the current generation's landscape. Let's talk about which previous common knowledge and patterns are deprecated, which ones are still active, and introduce some of the ones that have been recently added to our toolbox.
“Performance” - Dallas Oracle Users Group 2019-01-29 presentationCary Millsap
In this session, Cary Millsap begins with a little bit of the theory behind why reducing call count is the most important goal of optimizing performance. Then he works through two examples where understanding the call count reduction idea is key to making progress. The first worked example is an intermittent performance problem that was frustratingly difficult to reproduce. The second worked example is a performance problem caused by an inefficiently-written application that overtaxes the system’s CPU.
The scale-up, the autonomy and the nuclear submarineThomas Pierrain
Talk made at DDD Europe, June 9th 2023 (Amsterdam).
Most efficient organizations have autonomous staff as a common ground. Autonomy is a powerful individual driver : who doesn’t love to feel free to define their life, their time and their way of working? When working in a booming and thriving scale-up, autonomy is no longer an option. It is an essential fuel. But is it easy to put in motion?
Through our stories, successes and mistakes, we would like to share with you about this quest for autonomy. We will mainly talk about full-remote, release management, SRE approach, team conflicts and Domain Driven Design. We will also address self-organization, monolith splitting APIS, contracts tests and nuclear submarines.
In the end, lots of tips and tricks to manage to set up a Culture of autonomy that holds up over the long term. In a nutshell: how to prevent your quest for teams’ autonomy from turning into chaos…
Hexagonal architecture (a.k.a. Ports and Adapters) is a fabulous pattern that has more advantages than the ones for which it has been originally created.
One can think in an orthodox vision that patterns do not evolve. That it is important to keep Alistair Cockburn’s pattern like it was described back in the days.
One can think that some patterns may evolve, that Hexagonal Architecture has more facets than we think. This session will present both the original pattern in detail, and some alternative versions (related to Domain Driven Design).
Session made at Socrates Soltau 2022
https://www.socrates-conference.de/foundations
La scale-up, l'autonomie et le sous-marin nucléaireThomas Pierrain
La plupart des organisations efficaces ont en commun d’avoir des équipes autonomes. L’autonomie est aussi un moteur individuel puissant : qui n’aime pas se sentir libre de définir sa vie, ses horaires, sa façon de travailler ?
Lorsqu’on travaille dans une scale-up en plein essor et qui grossit de manière exponentielle, l’autonomie n’est plus une option, c’est un carburant indispensable.
Mais est-ce pour autant facile à mettre en oeuvre ?
C’est de cette quête d’autonomie dont nous aimerions vous parler à travers nos histoires, nos réussites et nos erreurs. Nous parlerons de full-remote, de release management, de démarche SRE, de conflits d’équipes et de Domain Driven Design.
On parlera aussi d’auto-organisation, d’APIs de split de monolithe, mais également de sous-marins nucléaires et de contract tests.
Au final, pleins de trucs et astuces pour arriver à mettre en place une Culture de l’autonomie qui tienne la route sur le long terme.
TDD is a game changer. It changed my dev life for good, no doubt. Having made almost all possible errors while practicing it over the years (more than 15 years of TDD practice), I have now ended up since many years with a style that provides me and my teams lots of efficiency and happiness.
A style that Bruno Boucard and myself have called the “outside-in diamond” TDD. Something that help us to easily write both domain-driven, but also "Antifragile" tests.
A session made at DDD Africa
Au-delà de la passion, faire du logiciel pour moi c’est aider les autres à résoudre leurs problèmes. Comment aider les autres si on n’est pas déjà clair soi-même avec sa posture, son métier, ses envies, ses ambitions ou bien ses craintes ? C’est la question que je me suis posé à plusieurs reprises durant ma carrière. Et c’est de cela - et des quelques aides trouvées en route - dont je voudrais vous parler.
Keynote d'ouverture de la conférence d'Alpes Craft 2019 (le 13 juin 2019)
When building an Event Sourcing system, can we change the past? Can we also forecast “events” in the future?
If we want to provide various projections/visions of things that hapenned over the time, what are the consequences and trade-offs on our code?
All these questions will be answered during this talk. But moreover, I'll tell you our learning story about Bi-temporal Event Sourcing. Yet another illustration of the power of modeling, sketches and concrete examples when we need to understand each others.
Coder, c'est de plus en plus façonner le monde. Redéfinir ses contours et certaines interactions que nous pouvons avoir (ou pas) entre nous.
Si certains métiers se sont déjà interrogés par le passé sur leur rôle et leur impact sur la société, il me semble que ces questions d'éthique ne nous traversent pas encore suffisamment dans la sphère des faiseuses et faiseurs de logiciels.
Et si on se posait quelques minutes pour faire le tour de certaines d'entre elles ?
Unmaintainable code, repetitive bugs, time-consuming corrections, depressed teams ... No wonder most of us prefer to start projects from scratch (a.k.a. Greenfield) rather than a Legacy code base (Brownfield). For sure, situations where control has been lost are annoying, even more: exhausting. But what if we were wrong? What if -fully equipped with some refactoring techniques and communication skills- we were able to reverse things and get back control over such situations?
During a session with real live-coding inside, come and discover the tips and tricks from people who prefer to regain control rather than undergo. From people who prefers the hidden opportunities of the legacy to the blank pages of the Greenfield projects. You too, realize it could be fun and join the Legacy Club!
Quickie made in french during DevoxxFR 2015
Avez-vous déjà eu l'impression de vous être assoupis dans votre carrière, de faire moins de veille qu'à d'autres périodes ? A l'inverse, vous êtes-vous déjà demandé comment sortir du ronron ambiant et "réveiller" vos collègues qui vous semblaient manquer de curiosité et de passion sur un projet ?
Cette courte session vise à vous présenter toutes les formules et astuces qui ont permis à très peu de gens chez nous de réveiller une grosse organisation qui s'endormait sur ses lauriers. Si on a réussi ici -sandwichs à la main- pourquoi pas vous ? Attention: effet contagieux ;-)
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.
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.
Strategies for Successful Data Migration Tools.pptxvarshanayak241
Data migration is a complex but essential task for organizations aiming to modernize their IT infrastructure and leverage new technologies. By understanding common challenges and implementing these strategies, businesses can achieve a successful migration with minimal disruption. Data Migration Tool like Ask On Data play a pivotal role in this journey, offering features that streamline the process, ensure data integrity, and maintain security. With the right approach and tools, organizations can turn the challenge of data migration into an opportunity for growth and innovation.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
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.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
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.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Hivelance Technology
Cryptocurrency trading bots are computer programs designed to automate buying, selling, and managing cryptocurrency transactions. These bots utilize advanced algorithms and machine learning techniques to analyze market data, identify trading opportunities, and execute trades on behalf of their users. By automating the decision-making process, crypto trading bots can react to market changes faster than human traders
Hivelance, a leading provider of cryptocurrency trading bot development services, stands out as the premier choice for crypto traders and developers. Hivelance boasts a team of seasoned cryptocurrency experts and software engineers who deeply understand the crypto market and the latest trends in automated trading, Hivelance leverages the latest technologies and tools in the industry, including advanced AI and machine learning algorithms, to create highly efficient and adaptable crypto trading bots
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
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.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
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.
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
Tim Combridge from Sensible Giraffe and Salesforce Ben presents some important tips that all developers should know when dealing with Flows in Salesforce.
31. Command
TRIGGERS AN ACTION
Modify the state of the system
>> Don’t return data ! <<
Imperative Verb
Ex: BookARoom
Query
ASKS FOR AN INFORMATION
Read-only!
Get back data
Imperative Verb
Ex: GetAvailableRooms
Event
ALREADY HAPPENED
(Immutable)
Past-tense
Ex: RoomBooked
33. Open Source Implementation available on GitHub
2 main parts:
CoreClr (Runtime execution) (C++)
CoreFx (including classes, collections, file systems, xml, etc.) (C#)
ASP.NET Core 1.0 framework relies on it
Classic deployment or
Container deployment (Linux or Windows)
.NET Core
// Licensed to the .NET Foundation under one or more agreements.
41. …a top-level architecture pattern
Use it for components under stress
Do not generalize its usage for all the components of your platform!
CQRS is not…
45. Well-separated read and write concerns
CQRS is mostly
Queries
Caches, Ready-
to-eat data
(no SQL)
Commands
Transactionnal
ACID
46. Merci aussi à Rui CARVALHO, Mendel MONTEIRO-BECKERMAN,
Olivier COANET et Clément BOUDEREAU ainsi que Greg YOUNG
pour leurs feedbacks et idées pour ce talk.