Core libraries for shared utilities and domain objects, next layer is business logic, then outer layer of interfaces to everything else like databases and webservers.
There are important differences between, say, hexagonal architecture and clean architecture. For instance, in clean architecture, what the Netflix guys described as repositories would actually be the data source itself and represent yet another interface on the system's outer layer.
Additionally, what the Netflix guys described as interactors would actually be the application layer, and it would be the only layer above the entity layer (i.e., activities don't depend on data source components)
[1] https://docs.microsoft.com/en-us/dotnet/architecture/microse...
So the application layer is the one that manages specific dependencies and injects them into the service layer and the service layer then goes:
- okay, when asked to disburse a loan - I construct a domain object for the loan - If the object is valid, I make a sync call to deposit the money - I then persist the loan - I then send a notification that a loan is disbursed
And it doesn't really know how the RPC, the notification, or the persistence layer actually work.
Good talk: https://www.destroyallsoftware.com/talks/boundaries
* This article https://herbertograca.com/2017/11/16/explicit-architecture-0... have detailed explanation on the components of hexagonal architecture.
* There is COLA framework https://github.com/alibaba/COLA based on spring boot from Alibaba. Description is in Chinese but google translate does good enough translation. There is some pretty interesting things happening in Chinese universe that are hidden for language barrier.
* Another sample application in .NET https://github.com/kgrzybek/modular-monolith-with-ddd which gives good overview of code architecture.
Are there any other things you can point to that you think are overlooked?
On top of my head I found these projects interesting,
* Dolphin Scheduler https://github.com/apache/incubator-dolphinscheduler
* Echarts https://github.com/apache/incubator-echarts
* Ant Design https://ant.design/
* Sky walking APM https://github.com/apache/skywalking
* Seata distributed transaction system https://github.com/seata/seata
* EasyTransaction distributed transaction system https://github.com/QNJR-GROUP/EasyTransaction
* EShop-SOA https://github.com/songxinjianqwe/EShop-SOA
* RocketMQ https://github.com/apache/rocketmq
* Sharding Sphere https://github.com/apache/incubator-shardingsphere
* Jeecg-Boot https://github.com/zhangdaiscott/jeecg-boot
* SOFA Stack https://github.com/sofastack
* Dubbo RPC framework https://dubbo.apache.org/en-us/ . Also it seems that every big companies in China have their own RPC framework.
It works well with OOP as well as with FP. Highly recommend it.