36
QCon Rio 2015 EVOLVING LEGACY: TO MICROSERVICES AND DDD Marcos Silveira @bymarkone - Twitter e Medium

Evolving legacy to microservices and ddd

Embed Size (px)

Citation preview

Q C o n R i o 2 0 1 5

EVOLVING LEGACY: TO MICROSERVICES AND DDD

Marcos Silveira @bymarkone - Twitter e Medium

2

Legacy systems

Tech vision

DDD and Microservices

Consulting

3

4

Monolithic: all process in a single application

Desktop application, running inside network

Anemic domain, big service classes

Outdated/poor technology (e.g. dojo.js)

Highly mutable objects, poor concurrency

Business logic embedded in SQL

Poorly tested

Database integration of processes in a single table

5

6

8

Quality

Innovation

Evolutionary Architecture

Evolutive Design

Continuous Delivery /

Deployment

Design Thinking

DOMAIN-DRIVEN DESIGNMarcos Silveira

9

10

1111

Facility File

Product Identification

Contract Selection

Manual Product Identification

Manual Contract Selection

Scenario Proposal

12

131313

Facility File

Product Identification

Contract Selection

Manual Product Identification

Contract Selection

Scenario Proposal

14

15

User Service

User

16

UserService

UserEntity

17

Service

UserEntity

CompanyEntity Address VO

Contact VO

Registry VO

18

Service

UserEntity

CompanyEntity

Address VO Contact VO Registry VO

User Aggregate

Company Aggregate

19

Service

UserEntity

CompanyEntity

Address VO Contact VO Registry VO

User Aggregate

Company Aggregate

20

User RepositoryUserEntity

CompanyEntity

Address VO Contact VO Registry VO

User Aggregate

Company Aggregate

User Validation Service

User Authentication Service

User Creation Service

21

Entity Value Object

AggregateServices Repository

MICROSERVICESMarcos Silveira

22

23

24

25

26

27

28

29

Import File

CreateWorkgroup

ProductMatch

FindPrices

SummarizeCharts

GenerateReport

30

Import File

CreateWorkgroup

FindPrices

SummarizeCharts

GenerateReport

ProductMatch

31

Import File

CreateWorkgroup

FindPrices

SummarizeCharts

GenerateReport

ProductMatch

ProductIdentification

32

ProductMatch

ProductIdentification

FacilityWorkgroup

Contract Selection

ContractMatch

33

ProductMatch

ProductIdentification

FacilityWorkgroup

Contract Selection

ContractMatch

Portfolio Modelling

OtherApplications

34

35

@bymarkone Twitter e Medium

OBRIGADO