I recently started working on a new project where the team was considering use onion architecture, which I was not very familiar with, so I started reading about it.
The application is a simple 3D format converter. It will read a sql database, convert the data and then write the new format in another MySql database. The first database is very complex itself, but I don't think it's mather. The application concept is very simple: read from A, convert, write to B. I won't have any services or special infrastructure for it.
It will be a desktop application.
Based on these facts, I ask:
Everything I read about onion is related to web applications. Is there any special reason why it's not very popular in a desktop application?
I also read it's most indicated in complex enterprises. Will would it be effective and have practical advantages on such a simple application?
If we go for the onion path, what would be in the domain layer? Please fell free to comment the following layers:
L1) Source Layer: will represent the data in the source database
L2) Output Layer: will represent the data in the output database
L3) Database Reader Layer: will be responsible for reading source database and populate Layer 1
L4) Converter Layer: will be an adapter that will receive Layer 1 and populate Layer 2 with the converted data
L5) Database Writer Layer: will write the Layer 2 to databaseWould layers 1 and 2 be the my domain layer?
Would layers 3 and 5 be infrastructure?
And layer 4 would be an application or domain service?