Created
September 1, 2018 08:19
-
-
Save machuz/de7600f94eb3745107bd24c5811bbd33 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@startuml | |
title: 1マイクロサービスにおける依存関係図 | |
scale 0.6 | |
package "xxxApiExternalAdapter" as extA { | |
frame "PlayFramework" { | |
[Controller] | |
[Presenter] | |
[InputJson] | |
[OutputJson] | |
} | |
} | |
package "SharedExternalAdapter" as sExtA { | |
frame "AbstractPlayFramework" { | |
[AbstractController] | |
[AbstractPresenter] | |
[AbstractInputJson] | |
[AbstractOutputJson] | |
} | |
} | |
package "xxxApiInternalAdapter" as intA { | |
frame "gRPC" { | |
[gRPCServer] | |
[gRPCService] | |
} | |
} | |
package "SharedInternalAdapter" as sIntA { | |
frame "Abstract gRPC" { | |
[AbstractgRPCServer] | |
[AbstractgRPCService] | |
} | |
} | |
package "xxxApiStreamAdapter" as strA { | |
frame "KinesisStream" { | |
[KinesisConsumer] | |
[Scheduler] | |
[RecordProcesser] | |
} | |
} | |
package "SharedStreamAdapter" as sStrA { | |
frame "AbstractKinesisStream" { | |
[AbstractKinesisConsumer] | |
[AbstractScheduler] | |
[AbstractRecordProcesser] | |
} | |
} | |
package "xxxApiSecondaryAdapter" as secA { | |
frame "bridge of domain and infra(Impl)" { | |
[RepositoryImpl] | |
[DomainServiceImpl] | |
} | |
frame "SpecialtyInfrastructure" { | |
[ThirdPartyApiClient(Twilio,etc....)] as TAPI | |
[DAO for DB] as DAO | |
[etc....] | |
} | |
} | |
package "SharedSecondaryAdapter" as sSecA { | |
frame "SharedInfrastructure" { | |
[AWSClient(SES,Kinesis,etc...)] as AWS | |
[AbstractDAO for DB] as ADAO | |
[etc....] | |
} | |
} | |
package "xxxApiUseCase" as usecase { | |
frame "UseCase" { | |
[UseCaseImpl] | |
} | |
} | |
package "xxxApiDomain" as domain { | |
frame "Domain" { | |
[DomainModel] | |
} | |
frame "bridge of domain and infra(interface)" { | |
[RepositoryInterface] | |
[DomainServiceInterface] | |
} | |
frame "bridge of domain and usecase" { | |
[UseCaseInterface] | |
} | |
} | |
package "SharedLib" as lib { | |
frame "Lib" { | |
[AbstractRepository] | |
[AbstractDomainxxx] | |
[AbstractUseCase] | |
[Util] | |
[etc...] | |
} | |
} | |
extA ---d-> sExtA | |
sExtA ------d-> secA | |
intA ---d-> sIntA | |
sIntA ------d-> secA | |
strA ---d-> sStrA | |
sStrA ------d-> secA | |
secA ---d-> sSecA | |
secA ---d-> usecase | |
usecase --d-> domain | |
domain --d-> lib | |
Controller .> AbstractController | |
Controller .> InputJson | |
Controller .> Presenter | |
Controller .> UseCaseInterface | |
gRPCService .> UseCaseInterface | |
RecordProcesser .> UseCaseInterface | |
Presenter .> OutputJson | |
InputJson .> AbstractInputJson | |
OutputJson .> AbstractOutputJson | |
Presenter .> AbstractPresenter | |
gRPCServer .> AbstractgRPCServer | |
gRPCService .> AbstractgRPCService | |
KinesisConsumer .> AbstractKinesisConsumer | |
KinesisConsumer .> Scheduler | |
Scheduler .> AbstractScheduler | |
Scheduler .> RecordProcesser | |
RecordProcesser .> AbstractRecordProcesser | |
DomainServiceImpl .> DomainServiceInterface | |
RepositoryImpl .> RepositoryInterface | |
RepositoryImpl .> DAO | |
RepositoryImpl .> TAPI | |
RepositoryImpl .> AWS | |
DAO .> ADAO | |
UseCaseInterface .> AbstractUseCase | |
UseCaseImpl .> UseCaseInterface | |
UseCaseImpl .> RepositoryInterface | |
UseCaseImpl .> DomainServiceInterface | |
RepositoryInterface .> AbstractRepository | |
DomainModel .> AbstractDomainxxx | |
@enduml |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment