Wat is SaaS?

SaaS staat voor Software as a Service. Voor mij betekent dat vooral dat je software bouwt die niet voor één klant of één situatie werkt, maar als platform continu waarde moet kunnen leveren aan meerdere gebruikers.

Dat verandert de manier waarop ik naar software kijk. Je bouwt niet alleen functionaliteit, maar ook een product dat onderhouden, uitgebreid, beveiligd en opgeschaald moet kunnen worden zonder dat iedere wijziging direct voor complexiteit zorgt.

Wat vind ik belangrijk bij SaaS?

Bij SaaS kijk ik verder dan alleen de techniek. Een technisch mooie oplossing is weinig waard als het product daardoor moeilijker wordt om te onderhouden of door te ontwikkelen.

Ik let daarom vooral op:

  • duidelijke scheiding tussen domeinen en verantwoordelijkheden

  • schaalbaarheid zonder vooraf alles ingewikkeld te maken

  • goede observability en inzicht in processen

  • veilige authenticatie en autorisatie

  • betrouwbare verwerking van data

  • eenvoudige deployments en reproduceerbare omgevingen

  • architectuur die kan meegroeien met het product

Vooral dat laatste vind ik belangrijk. Een SaaS-platform hoeft op dag één niet dezelfde architectuur te hebben als wanneer er honderdduizenden gebruikers op zitten.

Hoe ik SaaS bouw

Ik probeer SaaS-platformen bewust modulair op te zetten. Niet automatisch alles als microservice, maar wel met duidelijke grenzen zodat onderdelen later losgetrokken kunnen worden wanneer daar daadwerkelijk een reden voor ontstaat.

Wanneer processen meer gedistribueerd worden, werk ik graag event-driven. Kafka en Redis Streams zijn technologieën die daar goed bij passen. Voor processen die over meerdere services lopen kijk ik bijvoorbeeld naar Saga-patterns en Eventual Consistency.

Daarnaast hoort Platform Engineering er voor mij direct bij. Docker, CI/CD en cloud infrastructuur zijn geen onderdelen die je achteraf toevoegt. Ze bepalen mede hoe makkelijk een SaaS-product uiteindelijk beheerd en uitgebreid kan worden.

Waar ik SaaS heb gebruikt

Een belangrijk deel van mijn ervaring met SaaS komt uit mijn periode bij Marvia. Marvia is een SaaS-platform voor Local Marketing Automation. Daar heb ik ruim vier jaar gewerkt aan schaalbare systemen met onder andere microservices, MongoDB, AWS Lambda, AWS SES, AWS SNS, Docker en Elasticsearch.

Daarnaast heb ik als zelfstandige een eigen SaaS-infrastructuur ontworpen met vijf microservices. Deze communiceerden event-driven via Kafka, waarbij het Saga-pattern werd gebruikt voor Eventual Consistency en AWS Cognito voor authenticatie. Bovenop die infrastructuur is onder andere een facturatieapplicatie gebouwd.

Die combinatie geeft mij beide perspectieven: werken aan een bestaand SaaS-product dat al jaren in ontwikkeling is, maar ook vanaf nul nadenken over de technische basis waarop meerdere applicaties kunnen groeien.

Mijn ervaring met SaaS

Mijn recente ervaring heeft mijn kijk op SaaS vooral veranderd van "software bouwen" naar "een platform duurzaam laten evolueren".

Ook bij ANWB werk ik dagelijks met dezelfde vraagstukken die daarbij horen: externe databronnen, schaalbaarheid, asynchrone verwerking, betrouwbaarheid en het maken van architecturale keuzes die niet alleen vandaag werken, maar ook over een aantal jaar nog logisch zijn.

Voor mij zit goede SaaS-architectuur daarom niet in zoveel mogelijk technologie gebruiken. Het zit juist in bewust kiezen waar complexiteit nodig is en waar eenvoud voldoende blijft.

Veelgestelde vragen die ik krijg over SaaS

Bouw je een SaaS-platform direct met microservices?

Nee. Alleen wanneer de domeinen, schaalbaarheid of teams daar daadwerkelijk aanleiding voor geven. Anders maak je het product vooral complexer dan nodig.

Wanneer kies je voor event-driven binnen SaaS?

Vooral wanneer processen los van elkaar moeten kunnen schalen of wanneer meerdere onderdelen betrouwbaar op dezelfde gebeurtenis moeten reageren. Kafka of Redis Streams zijn daar goede middelen voor, maar nooit een doel op zichzelf.

Hoe belangrijk is Platform Engineering voor SaaS?

Heel belangrijk. Een goed product dat moeilijk te deployen, monitoren of onderhouden is, wordt uiteindelijk alsnog duur om te beheren.

Hoe voorkom je dat een SaaS-platform technisch te complex wordt?

Door regelmatig opnieuw naar de architectuur te kijken en technologie weg te halen wanneer deze geen waarde meer levert. Duurzaamheid betekent voor mij ook durven vereenvoudigen.

Wat maakt SaaS technisch interessant voor mij?

Je combineert software engineering, architectuur, infrastructuur en productdenken. Je bouwt niet alleen een feature, maar een fundament waarop het product verder moet kunnen groeien.