it

Come funziona?

Hai bisogno di aiuto per le imprese?

Contattaci per un preventivo FinMV personalizzato su misura per le tue esigenze.

Monolitico o microservizio?

Il direttore tecnico della tua azienda, quando pianifica il lancio di una piattaforma finanziaria, dovrà scegliere un'opzione di architettura del progetto. Quali opzioni di architettura sono a sua disposizione e quale è meglio scegliere?

Iniziate con l'architettura più semplice che mantenga i confini

Una nuova piattaforma di investimento ha un solo team, un solo deployment e un solo database. Il costo di un sistema distribuito in questa fase si traduce interamente in overhead: chiamate di rete dove basterebbe una chiamata di funzione, coerenza eventuale dove basterebbe una transazione, e un carico operativo per cui non c'è personale.

Per questo l'implementazione predefinita è modulare: onboarding, offerte, investimenti, pagamenti, documenti, assistenza e reportistica vivono dietro confini espliciti all'interno di un unico sistema distribuibile. Ciò che la rende modulare non è la struttura delle cartelle, ma il fatto che ogni modulo ha un contratto, i propri dati e i propri test.

Un servizio viene estratto quando c'è un motivo per farlo

Un modulo diventa un servizio separato per un motivo concreto, e questi motivi sono di business, non di moda:

  • scala — una parte del sistema deve crescere o guastarsi indipendentemente dal resto
  • sicurezza — il confine richiede un isolamento più forte di quello offerto da un modulo all'interno di un singolo processo
  • conformità — un regolatore o un audit richiedono la separazione delle responsabilità o dei dati
  • deployment — una parte viene rilasciata con una cadenza diversa o da un team diverso
  • integrazioni — un sistema esterno impone il proprio profilo di disponibilità e carico
  • organizzazione — team diversi devono possedere cose diverse senza coordinare ogni rilascio

Poiché i confini e i contratti esistono già, l'estrazione di un servizio è un'operazione pianificata, non una riscrittura. Questo è il punto: l'opzione resta aperta e resta economica.

Asincronia dove ha senso

Il lavoro che non deve bloccare l'utente — riconciliazione dei calcoli, generazione di documenti, callback dei fornitori, reportistica — passa attraverso le code. I broker di messaggi come RabbitMQ o Kafka compaiono quando ciò è giustificato dal carico o dalla topologia delle integrazioni, non per impostazione predefinita. PostgreSQL resta il sistema di registrazione; Redis viene usato dove servono davvero una cache a bassa latenza o il coordinamento.

Cosa non facciamo

Non vendiamo un monolite e non vendiamo microservizi. Entrambi sono risposte a domande che nessuno ha ancora posto. Inoltre non costruiamo un sistema distribuito per dare un'impressione di solidità: il teatro architetturale è costoso da gestire e difficile da trasferire.

L'architettura viene scelta in base alla vostra scala, ai vostri obblighi normativi, alle vostre integrazioni e alle dimensioni del team che la gestirà — ed è progettata per poter cambiare insieme a essi.