mercredi 4 août 2021

Rebuild Startup Company Codebase and Architecture with new technology

I know that this is going to be a really broad topic but I have come to a point that I need guidence with my first steps on this matter.

I started working for a startup company related with financial services at the end of last year. It provides loans and micro credit services, it has plans to incorporate digital wallet services and also add multicountry operations.

After working with support and daily issues, I've been assigned to start rebuilding the complete backend architecture and codebase. The replacing technology has been chosen, we are going to remove legacy versions of PHP and Laravel code and start working with .NET Core 3.1 and C# language. The idea of course is to make it in a progressive way, replacing small units of funcionality mostly on the client apps that consumes the APIs.

The current backend environment consists of 3 repos:

  • A custom back office system: PHP 7.1.33 + Laravel 5.1.46 (BE) | AngularJS (FE)
  • Packages project (third parties integration and some business logic encapsulation): PHP 7.1.33
  • Web API: PHP 7.1.33 + Laravel 5.2.45

I have always worked with already established architecture, so this is will be my first encounter with these kind of important decisions. I'm currently overwhelmed with the amount of information I've been reading about architecture patterns and design patterns. I don't even know where to start.

I have gathered some information about what kind of issues the current stack has, apart from deprecated versions. So this is important to have in mind.

What kind of procedure would you suggest? Should I create some proof of concepts projects? I'm having trouble to make decisions on which is going to be the most adequate combination of patterns , technologies or libraries.

My background as a developer has always been .NET variantions (+6 years exp) so there is no trouble with that. But for example, when it comes to choosing between Onion/Layered/Clean, Vertical Slices or Microservices architectures it is really difficult which suits better. The same happens with design patterns like Repository or CQRS.

I have little experience working with DDD (at least that I'm aware of using it consciously), perhaps this kind of business is a great opportunity to apply it. I decided to start reading Eric Evan's book but it's going to be a long road.

Let me know if more information is needed.

I would really appreciate your knowledge and experience.

Aucun commentaire:

Enregistrer un commentaire