Event sourcing refers to persisting the full history of a domain as a sequence of events rather than just the current state. It began with the idea of interrupts and events in programming to signal when something needed attention. Today, events represent actions that have occurred and infrastructure helps move these events around systems. Event sourcing is best for building infrastructure and complex systems, allowing partitioning of domains and using events to communicate between boundaries. It also enables capabilities like auditing, replication, and integration between systems.
Scaling AI/ML with Containers and Kubernetes Tushar Katarki
AI is popular and yet faces several challenges in the industry: 1) self-service and automation 2) Deployment into production 3) Access to data. These challenges can be addressed with containers and Kubernetes. They help you build AI-as-a-service with open source tools and Kuberentes. Data Scientists can use the service for data, experimentation and to deliver models into production iteratively with self-service and automation. Using Kubernetes, one is able to run massive machine learning pipelines iteratively in an automated fashion that can be repeated.
Scaling AI/ML with Containers and Kubernetes Tushar Katarki
AI is popular and yet faces several challenges in the industry: 1) self-service and automation 2) Deployment into production 3) Access to data. These challenges can be addressed with containers and Kubernetes. They help you build AI-as-a-service with open source tools and Kuberentes. Data Scientists can use the service for data, experimentation and to deliver models into production iteratively with self-service and automation. Using Kubernetes, one is able to run massive machine learning pipelines iteratively in an automated fashion that can be repeated.
This is a introduction to Maven 2. For more information visit http://jpereira.eu/2012/05/03/an-introduction-to-maven-2/
If you want to download the editable presentation contact me (find my contacts on my blog)
Caches in multiprocessing environment introduce the Cache Coherence problem.
When multiple processors maintain locally cached copies of a unique shared memory location, any local modification of the location can result in a globally inconsistent view of memory. This is called Cache Coherence Problem.
A brief discussion about its solutions are given.
Introduction to Puppet Enterprise 10/03/2018Puppet
Register today and learn more about Puppet Enterprise
Join Puppet on Wednesday, 3 October 2018 at 9:00 a.m. PDT for our upcoming webinar, Introduction to Puppet Enterprise.
If you're new to Puppet Enterprise, this is the webinar for you. You'll learn why thousands of companies rely on Puppet to automate the delivery and operation of their software and see it in action with a live demo.
We'll cover how to use Puppet Enterprise to:
Gain situational awareness and drive change with confidence
Orchestrate changes to infrastructure and applications
Continually enforce your desired state and remediate any unexpected changes
Get real-time visibility and reporting to prove compliance
We will also explore our new products, Puppet Discovery and Puppet Pipelines and what’s new in 2018.1 and will leave plenty of time to answer your questions.
Featured Speakers: Abir Majumdar, Sales Engineer, and Anthony Rodriguez, Sales Development.
Denodo provides a unique solution to enterprise database reporting. Instead of a traditional ETL solution, this product "grabs" the data from the source creating what they call a "data mashup". Our company is looking to offer this product as a reporting solution option to our clients.
Jet Reports es la herramienta para construir el mejor BI y de forma mas rapida CLARA CAMPROVIN
Análisis empresariales cuando los necesite, en cualquier lugar
Jet Enterprise es una solución de inteligencia empresarial y generación de informes desarrollada específicamente para satisfacer las necesidades propias de los usuarios de Microsoft Dynamics. Ahora puede juntar toda su información en un mismo lugar y permitir que quien usted quiera de la organización realice fácilmente sofisticados análisis empresariales desde cualquier sitio. Capacite a los usuarios para tomar mejores decisiones, más rápido, prácticamente con cualquier dispositivo.
Con Jet Enterprise dispone de:
Una solución completa de inteligencia empresarial y generación de informes, lista para usar en solo 2 horas
Más de 80 paneles y plantillas de informes
7 cubos pregenerados personalizables
Un almacén de datos
Integración directa con sus datos de Microsoft Dynamics y posibilidad de conectarse a otros sistemas empresariales pertinentes
Posibilidad de crear paneles en cuestión de minutos, sin necesidad de conocer la estructura de datos subyacente
Jet Mobile opcional, para acceder a sus datos desde cualquier sitio a través de un navegador web o un dispositivo móvil
Una plataforma robusta de automatización y personalización del almacenamiento de datos
«Comenzamos con datos de Sage Pro, datos de NAV 2009 y, además, datos incorporados de la nueva empresa que habíamos adquirido, por lo que ahora estamos usando tres sistemas de datos. Las ventajas de combinar los tres sistemas en Jet Enterprise han sido enormes».
– Davis & Shirtliff
Éxito inmediato = rápido ROI y bajo coste de propiedad
Muchas soluciones de inteligencia empresarial conllevan costes ocultos, como implementaciones prolongadas y difíciles, personalizaciones caras y precio elevado de las licencias cuando se amplían a un gran número de usuarios. Jet Enterprise se suele instalar en unas dos horas, requiere un nivel mínimo de formación de los usuarios y ofrece licencias para un número ilimitado de usuarios. Los usuarios habitualmente experimentan un incremento de los ingresos brutos en los primeros 12 meses de uso.
Agile Testing Days 2017 Intoducing AgileBI Sustainably - ExcercisesRaphael Branger
"We now do Agile BI too” is often heard in todays BI community. But can you really "create" agile in Business Intelligence projects? This presentation shows that Agile BI doesn't necessarily start with the introduction of an iterative project approach. An organisation is well advised to establish first the necessary foundations in regards to organisation, business and technology in order to become capable of an iterative, incremental project approach in the BI domain.
In this session you learn which building blocks you need to consider. In addition you will see what a meaningful sequence to these building blocks is. Selected aspects like test automation, BI specific design patterns as well as the Disciplined Agile Framework will be explained in more and practical details.
One of the main advantages of PHP is that it allows you and your company to build up projects in no time and with immediate feedback and business value. Sometimes, however, fast growth and unprevented complexities could make your codebase more and more difficult to manage as time passes and new features are added.Domain Driven Design can be an elegant solution to the problem, but introducing it in mid-large sized projects is not always easy: you have to deal with difficulties at technical, team and knowledge levels. This talk focuses on how to approach the change in your codebase and in your team mindset without breaking legacy code or stopping the development in favor of neverending refactoring sessions.
The term cloud computing is being used more and more, but what is it and why should you understand it? In this free webinar we will explain what cloud computing means, define the different types, discuss how it is impacting nonprofits and libraries, and outline some criteria for use. The challenges of using the “cloud” will be discussed, as well as whether cloud computing will simplify your life and reduce software and IT staffing costs.
Hear from Anna Jaeger, Co-Director, GreenTech at TechSoup Global, and Peter Campbell, Nonprofit Technologist at Earthjustice, who will help you understand this topic in order to better communicate with your consultants, staff and board. This webinar is applicable for any size organization and ideal for decision makers who need to communicate about cloud computing with tech consultants, and who are interested in making more informed technology decisions.
Event Driven Architecture (EDA), November 2, 2006Tim Bass
Event Driven Architecture (EDA), SOA Seminar Crystal City, Virginia, November 2nd, 2006, Tim Bass, CISSP, Principal Global Architect, Director. Co-Chair, Event Processing Reference Architecture Working Group (EPRAWG)
This is a introduction to Maven 2. For more information visit http://jpereira.eu/2012/05/03/an-introduction-to-maven-2/
If you want to download the editable presentation contact me (find my contacts on my blog)
Caches in multiprocessing environment introduce the Cache Coherence problem.
When multiple processors maintain locally cached copies of a unique shared memory location, any local modification of the location can result in a globally inconsistent view of memory. This is called Cache Coherence Problem.
A brief discussion about its solutions are given.
Introduction to Puppet Enterprise 10/03/2018Puppet
Register today and learn more about Puppet Enterprise
Join Puppet on Wednesday, 3 October 2018 at 9:00 a.m. PDT for our upcoming webinar, Introduction to Puppet Enterprise.
If you're new to Puppet Enterprise, this is the webinar for you. You'll learn why thousands of companies rely on Puppet to automate the delivery and operation of their software and see it in action with a live demo.
We'll cover how to use Puppet Enterprise to:
Gain situational awareness and drive change with confidence
Orchestrate changes to infrastructure and applications
Continually enforce your desired state and remediate any unexpected changes
Get real-time visibility and reporting to prove compliance
We will also explore our new products, Puppet Discovery and Puppet Pipelines and what’s new in 2018.1 and will leave plenty of time to answer your questions.
Featured Speakers: Abir Majumdar, Sales Engineer, and Anthony Rodriguez, Sales Development.
Denodo provides a unique solution to enterprise database reporting. Instead of a traditional ETL solution, this product "grabs" the data from the source creating what they call a "data mashup". Our company is looking to offer this product as a reporting solution option to our clients.
Jet Reports es la herramienta para construir el mejor BI y de forma mas rapida CLARA CAMPROVIN
Análisis empresariales cuando los necesite, en cualquier lugar
Jet Enterprise es una solución de inteligencia empresarial y generación de informes desarrollada específicamente para satisfacer las necesidades propias de los usuarios de Microsoft Dynamics. Ahora puede juntar toda su información en un mismo lugar y permitir que quien usted quiera de la organización realice fácilmente sofisticados análisis empresariales desde cualquier sitio. Capacite a los usuarios para tomar mejores decisiones, más rápido, prácticamente con cualquier dispositivo.
Con Jet Enterprise dispone de:
Una solución completa de inteligencia empresarial y generación de informes, lista para usar en solo 2 horas
Más de 80 paneles y plantillas de informes
7 cubos pregenerados personalizables
Un almacén de datos
Integración directa con sus datos de Microsoft Dynamics y posibilidad de conectarse a otros sistemas empresariales pertinentes
Posibilidad de crear paneles en cuestión de minutos, sin necesidad de conocer la estructura de datos subyacente
Jet Mobile opcional, para acceder a sus datos desde cualquier sitio a través de un navegador web o un dispositivo móvil
Una plataforma robusta de automatización y personalización del almacenamiento de datos
«Comenzamos con datos de Sage Pro, datos de NAV 2009 y, además, datos incorporados de la nueva empresa que habíamos adquirido, por lo que ahora estamos usando tres sistemas de datos. Las ventajas de combinar los tres sistemas en Jet Enterprise han sido enormes».
– Davis & Shirtliff
Éxito inmediato = rápido ROI y bajo coste de propiedad
Muchas soluciones de inteligencia empresarial conllevan costes ocultos, como implementaciones prolongadas y difíciles, personalizaciones caras y precio elevado de las licencias cuando se amplían a un gran número de usuarios. Jet Enterprise se suele instalar en unas dos horas, requiere un nivel mínimo de formación de los usuarios y ofrece licencias para un número ilimitado de usuarios. Los usuarios habitualmente experimentan un incremento de los ingresos brutos en los primeros 12 meses de uso.
Agile Testing Days 2017 Intoducing AgileBI Sustainably - ExcercisesRaphael Branger
"We now do Agile BI too” is often heard in todays BI community. But can you really "create" agile in Business Intelligence projects? This presentation shows that Agile BI doesn't necessarily start with the introduction of an iterative project approach. An organisation is well advised to establish first the necessary foundations in regards to organisation, business and technology in order to become capable of an iterative, incremental project approach in the BI domain.
In this session you learn which building blocks you need to consider. In addition you will see what a meaningful sequence to these building blocks is. Selected aspects like test automation, BI specific design patterns as well as the Disciplined Agile Framework will be explained in more and practical details.
One of the main advantages of PHP is that it allows you and your company to build up projects in no time and with immediate feedback and business value. Sometimes, however, fast growth and unprevented complexities could make your codebase more and more difficult to manage as time passes and new features are added.Domain Driven Design can be an elegant solution to the problem, but introducing it in mid-large sized projects is not always easy: you have to deal with difficulties at technical, team and knowledge levels. This talk focuses on how to approach the change in your codebase and in your team mindset without breaking legacy code or stopping the development in favor of neverending refactoring sessions.
The term cloud computing is being used more and more, but what is it and why should you understand it? In this free webinar we will explain what cloud computing means, define the different types, discuss how it is impacting nonprofits and libraries, and outline some criteria for use. The challenges of using the “cloud” will be discussed, as well as whether cloud computing will simplify your life and reduce software and IT staffing costs.
Hear from Anna Jaeger, Co-Director, GreenTech at TechSoup Global, and Peter Campbell, Nonprofit Technologist at Earthjustice, who will help you understand this topic in order to better communicate with your consultants, staff and board. This webinar is applicable for any size organization and ideal for decision makers who need to communicate about cloud computing with tech consultants, and who are interested in making more informed technology decisions.
Event Driven Architecture (EDA), November 2, 2006Tim Bass
Event Driven Architecture (EDA), SOA Seminar Crystal City, Virginia, November 2nd, 2006, Tim Bass, CISSP, Principal Global Architect, Director. Co-Chair, Event Processing Reference Architecture Working Group (EPRAWG)
AWS re:Invent 2016: Building a Solid Business Case for Cloud Migration (ENT308)Amazon Web Services
Learn how to create a compelling business case for a large-scale migration to AWS. We present a framework and tools for creating your business case, and guidelines for using AWS services to maximize value and optimize cost for migrations to the AWS Cloud. Learn a new way of thinking about cost that includes automation, new technologies, organizational change, and other factors.
Onboarding process made agile with confluent and flowablmimacom
Slides of the presentation "Onboarding process made agile with Confluent and Flowable: from days to minutes" given by Nelo Puchades, Solution Architect at mimacom and Javier del Águila, Solution Architect at Flowable.
Similar to Udi Dahan: Event Sourcing Keynote @ DDD EU (20)
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.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
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.
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.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
AI Genie Review: World’s First Open AI WordPress Website CreatorGoogle
AI Genie Review: World’s First Open AI WordPress Website Creator
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-genie-review
AI Genie Review: Key Features
✅Creates Limitless Real-Time Unique Content, auto-publishing Posts, Pages & Images directly from Chat GPT & Open AI on WordPress in any Niche
✅First & Only Google Bard Approved Software That Publishes 100% Original, SEO Friendly Content using Open AI
✅Publish Automated Posts and Pages using AI Genie directly on Your website
✅50 DFY Websites Included Without Adding Any Images, Content Or Doing Anything Yourself
✅Integrated Chat GPT Bot gives Instant Answers on Your Website to Visitors
✅Just Enter the title, and your Content for Pages and Posts will be ready on your website
✅Automatically insert visually appealing images into posts based on keywords and titles.
✅Choose the temperature of the content and control its randomness.
✅Control the length of the content to be generated.
✅Never Worry About Paying Huge Money Monthly To Top Content Creation Platforms
✅100% Easy-to-Use, Newbie-Friendly Technology
✅30-Days Money-Back Guarantee
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIGenieApp #AIGenieBonus #AIGenieBonuses #AIGenieDemo #AIGenieDownload #AIGenieLegit #AIGenieLiveDemo #AIGenieOTO #AIGeniePreview #AIGenieReview #AIGenieReviewandBonus #AIGenieScamorLegit #AIGenieSoftware #AIGenieUpgrades #AIGenieUpsells #HowDoesAlGenie #HowtoBuyAIGenie #HowtoMakeMoneywithAIGenie #MakeMoneyOnline #MakeMoneywithAIGenie
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
8. What is “Event Sourcing” anyway?
Event sourcing refers to a collection of patterns based on
persisting the full history of a domain as a sequence of
“events”
rather than persisting just the current state
9. Reminder: The Domain Model pattern
An object model of the domain
that incorporates both behavior and data
Use when you have complicated and everchanging business
rules
If you have simple not-null checks and a couple of sums to
calculate, a Transaction Script is a better bet
- p119 Patterns of Enterprise Application Architect, Fowler et
al.
11. OK, so what is an “Event” then?
Historically speaking, first they were called “Interrupts”
These were signals to the processor
that something needed immediate attention
Keyboard and mouse clicks are a kind of Interrupt
12. And then came the Graphical User Interface
When a button was clicked, you got an “event”
a programming construct different from a class, method, or
pointer
You could register multiple “callbacks” for an event
which were essentially methods on a class, with arguments
which gave additional data about the event
13. Oh, so many arguments…
Private Sub object _MouseDown(
index As Long,
ByVal Button As fmButton,
ByVal Shift As fmShiftState,
ByVal X As Single,
ByVal Y As Single)
Then came the idea to use the Parameter Object pattern to
consolidate all the arguments together
15. Component-Orientation was significant too
The idea was that complex software was better built as a
collection of loosely-coupled & highly-cohesive components
On top of that, events were a communication style that was
even more decoupled than invoking methods on an interface
This became known as Event-Driven Architecture (EDA)
There were “event producers”, “event consumers”, and
“channels” that connected them
Tip: producers can also be consumers, and vice versa
16. Integration pushed EDA & Messaging together
Integration between applications on different platforms was
hard
Message-oriented middleware made it easier
The events being emitted by systems following EDA were
well-suited to being transmitted by messages
The name of the event was put in the header of the message
(used for routing), and the arguments in the body
Content-based routing came later
17. Where we are today:
An Event is a kind of data structure (name + key/value args)
which represents an action that has already occurred
Infrastructure helps move these events around
Whether between systems using messaging
Or for persistence with event-sourcing
20. If you’re building a complex system…
UI
BL
DAL
DB
API
This isn’t your
Domain Model
21. Models of your domain
public class Customer
{
FirstName
LastName
Status
// etc
}
public class Product
{
Name
Description
Price
// etc
}
Customer
Status
Product
Price
Customer
FirstName
LastName
Product
Name
Description
TX Script TX ScriptDomain(?)
25. Events on the outside vs inside
Sales Billing
Shipping
Order Accepted
Order Accepted
Order Billed
26. Auditing & Replay
Messaging infrastructure usually provides Auditing out-of-the-
box
Once you have auditing in place, Replay becomes possible
To be totally honest, there are so many challenges with
Replay
like when integrating with other systems, that it just isn’t worth
it
(except in edge cases).
27. Events on the outside vs inside: Notifications
Shipping
28. Events on the outside vs inside: Data Sync
Billing
Master DB
Oracle
Finance
SAP
Data
Warehouse
Change
Data
Capture
ETL
29. Product Catalog
Events on the outside vs inside: DB Replication
Write Master
Read ReplicasRead ReplicasRead ReplicasRead ReplicasRead Replicas
Async
DB Client SDK
CRUD
30. Sales: customers who bought X also bought A, B, C
Events on the outside vs inside: Graph Databases
Graph DB
31. Monitoring
(IT/Ops)
Events on the inside: Time Series Databases
Influx DB
Netflix
Atlas
This is where we find event logging & tracing
36. Below scale, Moore’s law is your friend: Scale UP
Biggest AWS EC2 Instance: 128 vCPU, 3904 GB Memory
Reserved instance 3 year term:
$6250/month
That’s cheaper than most developers
I got to tell you, the things I’ve been hearing about this “event sourcing” thing.
People are treating it as
It does the scaling, the consistency, the auditing, the modeling, the time to market…
And I got to tell you, it sounds like the promises I’ve heard from…
So, yeah, naming things is hard, but there’s so much more than just Event-Blah.
There’s also Service-Oriented Architecture, Microservices, Domain Models, DDD, and even CRUD.
I’ll be touching on some older computer history along the way, so please bear with me.
A “pattern” is a solution design for a certain problem context. It is not a “best practice”.
Event-sourcing has a whole bunch of ramifications that many of the other speakers will talk about today, so I want to focus on setting the stage here.
Now, a lot of you already know the Domain Model pattern, or at least think you do, but here’s a friendly reminder just in case.
And in the darkness bind them.
But we’ll get back to this idea of having multiple domain models – event-sourced or otherwise, a bit later.
Note there was nothing about Event-Driven Architecture which meant it had to be distributed.
1. The thing was, there was no interoperable pure event-based model that worked at the time. There still isn’t – not really.
Now, remember that we said that Event-Sourcing is based on the Domain Model pattern? Right.
And remember what we said about the domain model?
Use when you have complicated and everchanging business rules
“If you have simple not-null checks and a couple of sums to calculate, a Transaction Script is a better bet”
All the way down through the database, and all the way up through the UI
Whether you’re using SignalR, or Azure Notification Hubs, or Google Cloud Messaging – this is about pushing data updates to your users.
You might be familiar with the concept of Projections in Event Sourcing, for creating read models that are quick and easy to read from.
Almost all databases already have this functionality built-in.
You won’t see domain models everywhere.
You won’t see event-sourcing everywhere.
Each area becomes a special case.
If you look at how databases do replication – you’ll see Event Sourcing patterns.
If you look at how Time Series Databases work, you’ll also see Event Sourcing patterns.
Things like Event Replay are a great way to get a new database node up and running in a cluster.
If/when existing database technologies just don’t handle the scale you need, you’ll use Event Sourcing patterns to build your own.
Seriously, I’ve seen far too many systems where the over-engineered complexity was what hurt its performance, to the point where even scaling up didn’t help.
Start simple.
Accept that you’ll need to redesign the system over time.
Explain that to stakeholders. That this is *normal*.
And that’s the most important thing. That the business can continue doing what it needs to do, and lives to fight another day.
I know I’ve just barely scratched the surface on these ideas, so if you want more, check out my videos on this link.
And I hope you’ve