In this blog I will talk about the known and lesser known topics concerning the possibility of creating a modern, professional, multiplatform, modular, performing, highly available, scalable and maintainable software.
What about logical architecture? I will talk about the design of an architecture using the following mothodologies: Domain Driven Design CQRS and the Clean Architecture.
What technologies and frameworks will I use ? As for dotnet: C#, Entity Framework, Dapper, Mediatr, Signalr, Ocelot, Polly. As for Java: Spring Boot, Spring Cloud (Eureka, Spring Apy Gateway, Feign, Ribbon, Hystrix), Jakarta EE, Hibernate. For the front-end: Angular, React and Blazor. For mobile: Ionic and PWA. For the desktop Electron.
What about physical architecture, deployment and execution? I'll cover Azure DevOps pipelines and Github Actions. To create a scalable and highly available microservices architecture I will use: Spring Cloud or Nomad + Consul and obviously containers with Docker and Kubernetes.
What about databases? I will use both relational databases (Microsoft Sql Server, Mysql and Postgres) and NoSql (Mongo). In particular, I will talk about how to create clusters with Mysql and Mongo in order to obtain High Availability.
Finally, there will be a series dedicated to the creation and execution of the set of microservices within a docker and kubernates cluster deployed on linux or in the cloud.