Mind Your Business. And Its Logic

AND ITS LOGIC
MIND YOUR BUSINESS
Vladik Khononov
Chief Architect @ Internovus
@vladikk
http://vladikk.com
BUSINESS LOGIC
PRESENTATION LAYER
BUSINESS LOGIC LAYER
DATA ACCESS LAYER
💵
PRESENTATION LAYER
BUSINESS LOGIC LAYER
DATA ACCESS LAYER
Transaction Script
Active Record
Domain Model
Event Sourced Domain Model
TRANSACTION SCRIPT
TRANSACTION SCRIPT
▸ Simple Business Logic
▸ CRUD
▸ Input Validation
▸ Extract Transform Load (ETL)
▸ Simple Data Structures
▸ Always leave the database in a consistent state


APPLICATIONCREATE USER UPDATE USER SEARCH USERS
DATABASE
UI
public class CreateUser {
public void Execute(name, email) {
try {
DB.StartTransaction();

var row = DB.NewUserRow();

row.Name = name;

row.Email = email;

DB.Append(row);

DB.Commit();
} catch {
DB.Rollback();

throw;
}
}
}
ACTIVE RECORD
ACTIVE RECORD
▸ Simple Business Logic
▸ CRUD
▸ Input Validation
▸ Extract Transform Load (ETL)
▸ Complex Data Structures
▸ References / Collections
▸ Multiple Tables
USER INTERESTS
ID
NAME Has

many
ADDRESSCOUNTRY CITY
STREET


APPLICATIONCREATE USER UPDATE USER SEARCH USERS
DATABASE
UI


APPLICATIONCREATE USER UPDATE USER SEARCH
USERS
UI


ACTIVE

RECORDS
USER
DATABASE
public class CreateUser {
public void Execute(userDetails) {
try {
DB.StartTransaction();



var user = new User();

user.Name = userDetails.Name;

user.Email = userDetails.Email;

user.Save();



DB.Commit();
} catch {
DB.Rollback();

throw;
}
}
}
public class User {
public Guid Id { get; set; }

public string Name { get; set; }

public List<Interest> Interests { get; set; }

public Address Address { get; set; }
public void Save() { … }

public void Delete() { … }

public static User Get(Guid id) { … }

public static List<User> GetAll() { … }
}
DOMAIN MODEL
DOMAIN MODEL
▸ Complex Business Logic
▸ Business rules
▸ Invariants
▸ Calculations
▸ Complex algorithms


APPLICATIONCREATE USER UPDATE USER SEARCH
USERS
UI


ACTIVE

RECORDS
USER
DATABASE


APPLICATIONCREATE USER UPDATE USER SEARCH USERS
UI


DOMAIN

MODEL
USER
DATABASE


APPLICATIONCREATE USER UPDATE USER SEARCH USERS
UI


DOMAIN

MODEL
USER
INFRASTRUCTURE
DOMAIN MODEL
▸ Complex business logic
▸ Model business domain
▸ Objects: data + behavior
▸ Plain objects
▸ Minimal application level use cases
public class UpdateUser {
public void Execute(userDetails) {
try {
var user = usersRepository.Get(userDetails.Id);

user.UpdateDetails(userDetails);

usersRepository.Save(user);
} catch {
DB.Rollback();

throw;
}
}
}
public class User {
public Guid Id { get; private set; }

public string Name { get; private set; }

public List<Interest> Interests { get; private set; }

public Address Address { get; private set; }
public void UpdateDetails() { … }

public void AddInterest() { … }

public static User InitializeNew() { … }
}
public interface IUsersRepository {
User Get(Guid id);

void Save(User user);

void Delete(User user);
}


APPLICATIONCREATE USER UPDATE USER SEARCH USERS
UI


DOMAIN

MODEL
USER
INFRASTRUCTURE
EVENT SOURCED

DOMAIN MODEL
EVENT SOURCED DOMAIN MODEL
▸ Complex Business Logic
▸ Business rules
▸ Invariants
▸ Complex algorithms
▸ Deals w/ money
▸ Data analysis required
▸ Audit required by law
EVENT SOURCED DOMAIN MODEL
PhoneEmailNameId
46464543one@gmail.comJames1
34234343two@gmail.comJohn2
public class NewUserInitialized {
public Guid UserId { get; private set; }

public string Name { get; private set; }

public string Email { get; private set; }
}
public class NameChanged {
public Guid UserId { get; private set; }

public string NewName { get; private set; }
}
public class EmailChanged {
public Guid UserId { get; private set; }

public string NewEmail { get; private set; }
}
EVENT SOURCED DOMAIN MODEL
▸ UserInitialized(1, John, john@gmail.com)
▸ NameChanged(1, James)
▸ EmailChanged(1, james@gmail.com)


APPLICATIONCREATE USER UPDATE USER SEARCH USERS
UI


DOMAIN

MODEL
USER
EVENT STORE
Transaction Script
Active Record
Domain Model
Event Sourced Domain Model
APPLICATION
ARCHITECTURE
LAYERED ARCHITECTURE
PRESENTATION LAYER
BUSINESS LOGIC LAYER
DATA ACCESS LAYER
HEXAGONAL / PORTS & ADAPTERS / ONION / CLEAN ARCHITECTURE
CORE
SERVICES
INFRASTRUCTURE
CQRS - COMMAND QUERY RESPONSIBILITY SEGREGATION
WRITE MODEL
COMMANDS
UI
READ MODEL
QUERIES
«SHLIKHTA» ARCHITECTURE
EVERYTHING
EVENT SOURCED DOMAIN MODEL
• Shlikhta Architecture
• Layered Architecture
• Hexagonal Architecture
• CQRS
• Transaction Script
• Active Record
• Domain Model
• Event Sourced Domain Model
TESTING
STRATEGIES
TESTS PYRAMID
UI

/

End to End
Service / API

layer tests
Unit Tests
TESTS PYRAMID
UI

/

End to End
Service / API

layer tests
Unit Tests
TESTS PYRAMID
UI

/

End to End
Service / API

layer tests
Unit Tests
TESTS PYRAMID
UI

/

End to End
Service / API

layer tests
Unit Tests
TESTING STRATEGIES
• End to end tests
• API layer tests
• Unit tests
• Unit tests
• Transaction Script
• Active Record
• Domain Model
• Event Sourced Domain Model
LANGUAGE AND
TECHNOLOGY
PROGRAMMING STYLE
• Procedural
• Procedural / OOP
• OOP
• Functional
• Transaction Script
• Active Record
• Domain Model
• Event Sourced Domain Model
DYNAMIC / STATIC TYPING
• Dynamic
• Dynamic
• Static
• Static
• Transaction Script
• Active Record
• Domain Model
• Event Sourced Domain Model
RAMIFICATIONS
▸ Architectural style / pattern
▸ Testing strategy
▸ Language and technology
▸ Programming style
▸ Language type
DECISION HEURISTIC
▸ Is the business logic mostly CRUD / ETL? Yes
▸ Are the data structures simple? yes - Transaction Script
▸ Are the data structures simple? No -Active Record
▸ Is the business logic mostly CRUD / ETL? No
▸ Is advanced analysis required, or dealing w/ money? No

Domain Model
▸ Is advanced analysis required, or dealing w/ money? Yes

Event Sourced Domain Model
TRANSACTION SCRIPT
ACTIVE RECORD
DOMAIN MODEL
EVENT SOURCED DOMAIN MODEL
AGILE ARCHITECTURE
TRANSACTION SCRIPT / SHLIKHTA
ACTIVE RECORD / LAYERS
DOMAIN MODEL / HEXAGONAL
EVENT SOURCED DOMAIN MODEL / CQRS
DECISION SCOPE
CAMPAIGN MANAGEMENT LEAD MANAGEMENT


CAMPAIGN MANAGEMENT


LEAD MANAGEMENT
CREATIVE CATALOG
CAMPAIGN PUBLISHING
BILLING
USERS MANAGEMENT
SALES
COMMISSIONS CALCULATION
DESK MANAGEMENT
VOIP MANAGEMENT
SUMMARY
Business Driven Architecture
Mind Your Business. And Its Logic
QUESTIONS?
THANK YOU
Vladik Khononov
Chief Architect @ Internovus
@vladikk
http://vladikk.com
1 of 62

Recommended

Rich domain model by
Rich domain modelRich domain model
Rich domain modelYoung-Ho Cho
3K views70 slides
Easy data-with-spring-data-jpa by
Easy data-with-spring-data-jpaEasy data-with-spring-data-jpa
Easy data-with-spring-data-jpaStaples
3.5K views26 slides
DDD로 복잡함 다루기 by
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기beom kyun choi
14.1K views43 slides
Introducing Clean Architecture by
Introducing Clean ArchitectureIntroducing Clean Architecture
Introducing Clean ArchitectureRoc Boronat
3K views41 slides
[수정본] 우아한 객체지향 by
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향Young-Ho Cho
20.1K views173 slides
Domain Driven Design by
Domain Driven DesignDomain Driven Design
Domain Driven DesignYoung-Ho Cho
8.3K views64 slides

More Related Content

What's hot

시작하자 단위테스트 by
시작하자 단위테스트시작하자 단위테스트
시작하자 단위테스트YongEun Choi
10.3K views58 slides
도메인 주도 설계의 본질 by
도메인 주도 설계의 본질도메인 주도 설계의 본질
도메인 주도 설계의 본질Young-Ho Cho
48.5K views95 slides
Malli: inside data-driven schemas by
Malli: inside data-driven schemasMalli: inside data-driven schemas
Malli: inside data-driven schemasMetosin Oy
1K views56 slides
Testcontainers - Geekout EE 2017 presentation by
Testcontainers - Geekout EE 2017 presentationTestcontainers - Geekout EE 2017 presentation
Testcontainers - Geekout EE 2017 presentationRichard North
2.4K views83 slides
Spring Security 5 by
Spring Security 5Spring Security 5
Spring Security 5Jesus Perez Franco
8.1K views36 slides
마이크로 서비스 아키텍쳐 소개 및 구현 방법 by
마이크로 서비스 아키텍쳐 소개 및 구현 방법마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법Young Soo Lee
6.7K views30 slides

What's hot(20)

시작하자 단위테스트 by YongEun Choi
시작하자 단위테스트시작하자 단위테스트
시작하자 단위테스트
YongEun Choi10.3K views
도메인 주도 설계의 본질 by Young-Ho Cho
도메인 주도 설계의 본질도메인 주도 설계의 본질
도메인 주도 설계의 본질
Young-Ho Cho48.5K views
Malli: inside data-driven schemas by Metosin Oy
Malli: inside data-driven schemasMalli: inside data-driven schemas
Malli: inside data-driven schemas
Metosin Oy1K views
Testcontainers - Geekout EE 2017 presentation by Richard North
Testcontainers - Geekout EE 2017 presentationTestcontainers - Geekout EE 2017 presentation
Testcontainers - Geekout EE 2017 presentation
Richard North2.4K views
마이크로 서비스 아키텍쳐 소개 및 구현 방법 by Young Soo Lee
마이크로 서비스 아키텍쳐 소개 및 구현 방법마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법
Young Soo Lee6.7K views
devops 2년차 이직 성공기.pptx by REZE8
devops 2년차 이직 성공기.pptxdevops 2년차 이직 성공기.pptx
devops 2년차 이직 성공기.pptx
REZE8201 views
Architecting for the Cloud using NetflixOSS - Codemash Workshop by Sudhir Tonse
Architecting for the Cloud using NetflixOSS - Codemash WorkshopArchitecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash Workshop
Sudhir Tonse39.6K views
Introduction to SAML 2.0 by Mika Koivisto
Introduction to SAML 2.0Introduction to SAML 2.0
Introduction to SAML 2.0
Mika Koivisto72.2K views
Beyond xp_cmdshell: Owning the Empire through SQL Server by Scott Sutherland
Beyond xp_cmdshell: Owning the Empire through SQL ServerBeyond xp_cmdshell: Owning the Empire through SQL Server
Beyond xp_cmdshell: Owning the Empire through SQL Server
Scott Sutherland10.9K views
Simple callcenter platform with PHP by Morten Amundsen
Simple callcenter platform with PHPSimple callcenter platform with PHP
Simple callcenter platform with PHP
Morten Amundsen2.7K views
MLPerf an industry standard benchmark suite for machine learning performance by jemin lee
MLPerf an industry standard benchmark suite for machine learning performanceMLPerf an industry standard benchmark suite for machine learning performance
MLPerf an industry standard benchmark suite for machine learning performance
jemin lee102 views
Implementing DDD with C# by Pascal Laurin
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#
Pascal Laurin36.3K views
Introduction to Prometheus by Julien Pivotto
Introduction to PrometheusIntroduction to Prometheus
Introduction to Prometheus
Julien Pivotto6.7K views
스프링 시큐리티 구조 이해 by beom kyun choi
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해
beom kyun choi31.3K views
User Management Life Cycle with Keycloak by Muhammad Edwin
User Management Life Cycle with KeycloakUser Management Life Cycle with Keycloak
User Management Life Cycle with Keycloak
Muhammad Edwin531 views
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기 by Kee Hoon Lee
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기
Kee Hoon Lee312 views

Viewers also liked

Design Pattern MicroServices Architecture in Japanese by
Design Pattern MicroServices Architecture in JapaneseDesign Pattern MicroServices Architecture in Japanese
Design Pattern MicroServices Architecture in JapaneseLei Xu
345 views37 slides
Recent Internet and Communications Technologies and Business Mind (4/4) by
Recent Internet and Communications Technologies and Business Mind (4/4)Recent Internet and Communications Technologies and Business Mind (4/4)
Recent Internet and Communications Technologies and Business Mind (4/4)Korea Institute of Science and Technology Information
769 views189 slides
Event Driven Streaming Analytics - Demostration on Architecture of IoT by
Event Driven Streaming Analytics - Demostration on Architecture of IoTEvent Driven Streaming Analytics - Demostration on Architecture of IoT
Event Driven Streaming Analytics - Demostration on Architecture of IoTLei Xu
1.7K views32 slides
PostSharp - Threading Model Library by
PostSharp - Threading Model LibraryPostSharp - Threading Model Library
PostSharp - Threading Model LibraryAndrey Gordienkov
4.8K views29 slides
Multi Team Architecture by
Multi Team ArchitectureMulti Team Architecture
Multi Team ArchitectureSigma Software
1.3K views24 slides
F5 beyond load balancer (nov 2009) by
F5 beyond load balancer (nov 2009)F5 beyond load balancer (nov 2009)
F5 beyond load balancer (nov 2009)Information Technology
5.1K views47 slides

Viewers also liked(20)

Design Pattern MicroServices Architecture in Japanese by Lei Xu
Design Pattern MicroServices Architecture in JapaneseDesign Pattern MicroServices Architecture in Japanese
Design Pattern MicroServices Architecture in Japanese
Lei Xu345 views
Event Driven Streaming Analytics - Demostration on Architecture of IoT by Lei Xu
Event Driven Streaming Analytics - Demostration on Architecture of IoTEvent Driven Streaming Analytics - Demostration on Architecture of IoT
Event Driven Streaming Analytics - Demostration on Architecture of IoT
Lei Xu1.7K views
Internetworking With Pix Firewall by Souvik Santra
Internetworking With Pix FirewallInternetworking With Pix Firewall
Internetworking With Pix Firewall
Souvik Santra2.7K views
Creating a Plug-In Architecture by ondrejbalas
Creating a Plug-In ArchitectureCreating a Plug-In Architecture
Creating a Plug-In Architecture
ondrejbalas11.4K views
Linux practicals T.Y.B.ScIT by vignesh0009
Linux practicals T.Y.B.ScITLinux practicals T.Y.B.ScIT
Linux practicals T.Y.B.ScIT
vignesh000916.5K views
Linux lab manual by zoom by Satya Johnny
Linux lab manual by zoomLinux lab manual by zoom
Linux lab manual by zoom
Satya Johnny6.1K views
Plugin architecture (Extensible Application Architecture) by Chinmoy Mohanty
Plugin architecture (Extensible Application Architecture)Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)
Chinmoy Mohanty10.8K views
Enterprise Software Architecture styles by Araf Karsh Hamid
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture styles
Araf Karsh Hamid5.1K views
How ddd, cqrs and event sourcing constitute the architecture of the future by MSDEVMTL
How ddd, cqrs and event sourcing constitute the architecture of the futureHow ddd, cqrs and event sourcing constitute the architecture of the future
How ddd, cqrs and event sourcing constitute the architecture of the future
MSDEVMTL1.7K views
F5 study guide by shimera123
F5 study guideF5 study guide
F5 study guide
shimera1234.2K views
F5 BIG-IP: Secure Application and Data Security Services by Amazon Web Services
 F5 BIG-IP: Secure Application and Data Security Services F5 BIG-IP: Secure Application and Data Security Services
F5 BIG-IP: Secure Application and Data Security Services
F5 Solutions for Service Providers by BAKOTECH
F5 Solutions for Service ProvidersF5 Solutions for Service Providers
F5 Solutions for Service Providers
BAKOTECH7.6K views
MPLS (Multi-Protocol Label Switching) by Vipin Sahu
MPLS (Multi-Protocol Label Switching)MPLS (Multi-Protocol Label Switching)
MPLS (Multi-Protocol Label Switching)
Vipin Sahu23.9K views

Similar to Mind Your Business. And Its Logic

Domain-Driven Design with SeedStack by
Domain-Driven Design with SeedStackDomain-Driven Design with SeedStack
Domain-Driven Design with SeedStackSeedStack
736 views14 slides
Domain-driven Design in PHP and Symfony - Drupal Camp Wroclaw! by
Domain-driven Design in PHP and Symfony - Drupal Camp Wroclaw!Domain-driven Design in PHP and Symfony - Drupal Camp Wroclaw!
Domain-driven Design in PHP and Symfony - Drupal Camp Wroclaw!Kacper Gunia
6.5K views86 slides
Clean Architecture @ Taxibeat by
Clean Architecture @ TaxibeatClean Architecture @ Taxibeat
Clean Architecture @ TaxibeatMichael Bakogiannis
706 views24 slides
Apex Enterprise Patterns: Building Strong Foundations by
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsSalesforce Developers
12.8K views48 slides
Domain Driven Design 101 by
Domain Driven Design 101Domain Driven Design 101
Domain Driven Design 101Richard Dingwall
39.6K views55 slides
Angular for Java Enterprise Developers: Oracle Code One 2018 by
Angular for Java Enterprise Developers: Oracle Code One 2018Angular for Java Enterprise Developers: Oracle Code One 2018
Angular for Java Enterprise Developers: Oracle Code One 2018Loiane Groner
726 views87 slides

Similar to Mind Your Business. And Its Logic(20)

Domain-Driven Design with SeedStack by SeedStack
Domain-Driven Design with SeedStackDomain-Driven Design with SeedStack
Domain-Driven Design with SeedStack
SeedStack736 views
Domain-driven Design in PHP and Symfony - Drupal Camp Wroclaw! by Kacper Gunia
Domain-driven Design in PHP and Symfony - Drupal Camp Wroclaw!Domain-driven Design in PHP and Symfony - Drupal Camp Wroclaw!
Domain-driven Design in PHP and Symfony - Drupal Camp Wroclaw!
Kacper Gunia6.5K views
Apex Enterprise Patterns: Building Strong Foundations by Salesforce Developers
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
Salesforce Developers12.8K views
Angular for Java Enterprise Developers: Oracle Code One 2018 by Loiane Groner
Angular for Java Enterprise Developers: Oracle Code One 2018Angular for Java Enterprise Developers: Oracle Code One 2018
Angular for Java Enterprise Developers: Oracle Code One 2018
Loiane Groner726 views
Modularity and Layered Data Model by Attila Jenei
Modularity and Layered Data ModelModularity and Layered Data Model
Modularity and Layered Data Model
Attila Jenei1K views
Application Layer in PHP by Per Bernhardt
Application Layer in PHPApplication Layer in PHP
Application Layer in PHP
Per Bernhardt3.4K views
The Best Way to Become an Android Developer Expert with Android Jetpack by Ahmad Arif Faizin
The Best Way to Become an Android Developer Expert  with Android JetpackThe Best Way to Become an Android Developer Expert  with Android Jetpack
The Best Way to Become an Android Developer Expert with Android Jetpack
Ahmad Arif Faizin200 views
Rest with Java EE 6 , Security , Backbone.js by Carol McDonald
Rest with Java EE 6 , Security , Backbone.jsRest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.js
Carol McDonald8.9K views
Boost Your Neo4j with User-Defined Procedures by Neo4j
Boost Your Neo4j with User-Defined ProceduresBoost Your Neo4j with User-Defined Procedures
Boost Your Neo4j with User-Defined Procedures
Neo4j343 views
Groovy Architectural Flexibility by David Dawson
Groovy Architectural FlexibilityGroovy Architectural Flexibility
Groovy Architectural Flexibility
David Dawson945 views
Webinar about Spring Data Neo4j 4 by GraphAware
Webinar about Spring Data Neo4j 4Webinar about Spring Data Neo4j 4
Webinar about Spring Data Neo4j 4
GraphAware7.9K views
Domain Specific Languages (EclipseCon 2012) by Sven Efftinge
Domain Specific Languages (EclipseCon 2012)Domain Specific Languages (EclipseCon 2012)
Domain Specific Languages (EclipseCon 2012)
Sven Efftinge734 views
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ... by tdc-globalcode
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
tdc-globalcode218 views
An Introduction to Tornado by Gavin Roy
An Introduction to TornadoAn Introduction to Tornado
An Introduction to Tornado
Gavin Roy9.3K views
ZZ BC#7.5 asp.net mvc practice and guideline refresh! by Chalermpon Areepong
ZZ BC#7.5 asp.net mvc practice  and guideline refresh! ZZ BC#7.5 asp.net mvc practice  and guideline refresh!
ZZ BC#7.5 asp.net mvc practice and guideline refresh!
Chalermpon Areepong1.4K views
Cowboy Dating with Big Data or DWH Evolution in Action, Борис Трофимов by Sigma Software
Cowboy Dating with Big Data or DWH Evolution in Action, Борис ТрофимовCowboy Dating with Big Data or DWH Evolution in Action, Борис Трофимов
Cowboy Dating with Big Data or DWH Evolution in Action, Борис Трофимов
Sigma Software138 views

More from Vladik Khononov

7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018) by
7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)
7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)Vladik Khononov
627 views139 slides
How to Tame TDD - ISTA 2017 by
How to Tame TDD - ISTA 2017How to Tame TDD - ISTA 2017
How to Tame TDD - ISTA 2017Vladik Khononov
492 views148 slides
ISTA 2016: Event Sourcing by
ISTA 2016: Event SourcingISTA 2016: Event Sourcing
ISTA 2016: Event SourcingVladik Khononov
279 views100 slides
Introduction to Event Sourcing and CQRS (IASA-IL) by
Introduction to Event Sourcing and CQRS (IASA-IL)Introduction to Event Sourcing and CQRS (IASA-IL)
Introduction to Event Sourcing and CQRS (IASA-IL)Vladik Khononov
6.5K views61 slides
Introduction to Event Sourcing and CQRS by
Introduction to Event Sourcing and CQRSIntroduction to Event Sourcing and CQRS
Introduction to Event Sourcing and CQRSVladik Khononov
1.1K views52 slides
Introduction to MongoDB by
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBVladik Khononov
337 views16 slides

More from Vladik Khononov(8)

7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018) by Vladik Khononov
7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)
7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)
Vladik Khononov627 views
Introduction to Event Sourcing and CQRS (IASA-IL) by Vladik Khononov
Introduction to Event Sourcing and CQRS (IASA-IL)Introduction to Event Sourcing and CQRS (IASA-IL)
Introduction to Event Sourcing and CQRS (IASA-IL)
Vladik Khononov6.5K views
Introduction to Event Sourcing and CQRS by Vladik Khononov
Introduction to Event Sourcing and CQRSIntroduction to Event Sourcing and CQRS
Introduction to Event Sourcing and CQRS
Vladik Khononov1.1K views
Internal Project: Under the Hood by Vladik Khononov
Internal Project: Under the HoodInternal Project: Under the Hood
Internal Project: Under the Hood
Vladik Khononov535 views

Recently uploaded

Dapr Unleashed: Accelerating Microservice Development by
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice DevelopmentMiroslav Janeski
12 views29 slides
Keep by
KeepKeep
KeepGeniusee
78 views10 slides
What is API by
What is APIWhat is API
What is APIartembondar5
10 views15 slides
HarshithAkkapelli_Presentation.pdf by
HarshithAkkapelli_Presentation.pdfHarshithAkkapelli_Presentation.pdf
HarshithAkkapelli_Presentation.pdfharshithakkapelli
12 views16 slides
Introduction to Gradle by
Introduction to GradleIntroduction to Gradle
Introduction to GradleJohn Valentino
5 views7 slides
SAP FOR CONTRACT MANUFACTURING.pdf by
SAP FOR CONTRACT MANUFACTURING.pdfSAP FOR CONTRACT MANUFACTURING.pdf
SAP FOR CONTRACT MANUFACTURING.pdfVirendra Rai, PMP
13 views2 slides

Recently uploaded(20)

Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski12 views
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... by sparkfabrik
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
sparkfabrik8 views
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Myths and Facts About Hospice Care: Busting Common Misconceptions by Care Coordinations
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common Misconceptions
predicting-m3-devopsconMunich-2023-v2.pptx by Tier1 app
predicting-m3-devopsconMunich-2023-v2.pptxpredicting-m3-devopsconMunich-2023-v2.pptx
predicting-m3-devopsconMunich-2023-v2.pptx
Tier1 app9 views
FOSSLight Community Day 2023-11-30 by Shane Coughlan
FOSSLight Community Day 2023-11-30FOSSLight Community Day 2023-11-30
FOSSLight Community Day 2023-11-30
Shane Coughlan6 views
360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492143 views
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... by Marc Müller
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
Marc Müller41 views
Software evolution understanding: Automatic extraction of software identifier... by Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy14 views

Mind Your Business. And Its Logic