Technologie

Een onderhoudbare basis

Redakt combineert een vaste technische basis met expertise in softwarearchitectuur. Die expertise loopt van gegevensopslag, integraties en event-driven systemen tot performance, AI, beveiliging en compliant softwareontwikkeling.

Webapplicaties, logica en koppelingen

C# en .NET gebruiken we voor webapplicaties, bedrijfslogica, achtergrondprocessen en koppelingen met andere systemen. Onderdelen kunnen in een andere geschikte omgeving worden uitgevoerd wanneer de opdracht dat vraagt.

Vorm volgt de omvang

Een afgebakende toepassing houden we compact. Als onderdelen onafhankelijk moeten kunnen schalen of uitgeleverd worden, ontwerpen we ze als afzonderlijke diensten. Achtergrondprocessen kunnen reageren op een gebeurtenis, een wachtrij verwerken of op vaste momenten werk uitvoeren. De gekozen vorm blijft begrijpelijk voor het team dat de software later beheert of overneemt.

Architectuurpatronen

Van modulair tot event-driven

Redakt werkt met modulaire architecturen, microservices en event-driven systemen. Ook event sourcing en CQRS zijn in productiesystemen toegepast. Bij event sourcing worden veranderingen als gebeurtenissen vastgelegd, zodat de historie onderdeel is van het systeem. CQRS maakt het mogelijk om het verwerken en uitlezen van informatie afzonderlijk te modelleren.

Patronen combineren

Deze patronen geven technische mogelijkheden voor processen waarin herleidbaarheid, losse diensten of gebeurtenissen tussen systemen een belangrijke rol spelen. Ze kunnen binnen één oplossing worden gecombineerd met relationele gegevensopslag, API's en achtergrondverwerking.

Gegevens en opslag

Structuur bepaalt de opslag

Voor gegevens met een vaste structuur en duidelijke onderlinge relaties ligt een relationele SQL-database vaak voor de hand. Waar informatie van document tot document sterk verschilt, kan een documentdatabase zoals MongoDB beter passen. Andere vormen van opslag kunnen worden gebruikt voor bestanden, zoekfuncties, tijdelijke gegevens of specifieke manieren van verwerken.

Meerdere bronnen, één definitie

De keuze voor opslag volgt uit het datamodel, de manier waarop de gegevens worden gelezen en geschreven, de gewenste historie en de eisen aan beheer. Binnen één oplossing kunnen meerdere soorten opslag naast elkaar bestaan. We leggen vast welke bron leidend is en hoe wijzigingen worden verwerkt, zodat rapportages en applicaties dezelfde definities kunnen gebruiken.

Koppelingen met bestaande systemen

Aansluiten op wat er al is

Nieuwe software staat zelden op zichzelf. Gegevens komen uit een ERP, CRM, branchepakket of een intern systeem en moeten soms ook terug. We gebruiken API's waar die beschikbaar zijn en bouwen een passende aansluiting op systemen die via bestanden, exports of een oudere interface werken.

Messaging en toegang

Voor asynchrone communicatie en gebeurtenissen werken we onder meer met Azure Service Bus, Event Hubs en Kafka. Daarmee kunnen systemen berichten via wachtrijen, publicatie en abonnementen of gebeurtenisstromen uitwisselen. Authenticatie en autorisatie kunnen aansluiten op Microsoft Entra voor gebruikers, rollen en toegang tussen systemen.

Performance

Gericht optimaliseren

Voor het analyseren en verbeteren van performance gebruiken we onder meer profiling, query-optimalisatie, caching, efficiënte datamodellen en asynchrone verwerking. Daarmee kunnen knelpunten in code, gegevensopslag, koppelingen en achtergrondprocessen gericht worden aangepakt.

Meetbaar resultaat

Belastingtests en monitoring maken responstijden, doorvoersnelheid en resourcegebruik meetbaar. De resultaten laten zien waar optimalisatie nodig is en maken zichtbaar of een wijziging de verwachte verbetering oplevert.

AI in de oplossing

Beheerde diensten in Azure

Als een oplossing beheerde AI-diensten nodig heeft, gebruiken we daarvoor diensten binnen Azure. De applicatie bepaalt welke informatie naar het model gaat en welke bronnen voor een antwoord gebruikt mogen worden. Bij zoeken in eigen documenten krijgt het model alleen de relevante fragmenten mee. Dit patroon wordt vaak retrieval-augmented generation, of RAG, genoemd.

Rechten en controle

Toegangsrechten lopen mee in die verwerking. De AI-functie gebruikt alleen documenten waartoe de medewerker toegang heeft. Antwoorden krijgen waar mogelijk een bronverwijzing, en bij processen met gevolgen bouwen we een controlemoment in voordat de software verdergaat.

Kosten en kwaliteit

Gebruikskosten hangen af van het aantal vragen, de hoeveelheid tekst en het gekozen model. We meten dat gebruik en maken zichtbaar hoe de kosten zich ontwikkelen. Kwaliteit meten we met representatieve vragen en verwachte antwoorden, zodat een wijziging in documenten, instructies of modellen gecontroleerd kan worden.

Beveiliging en beheer

NEN- en ISO-kaders

Redakt heeft ervaring met softwareontwikkeling binnen certificeringstrajecten, bijvoorbeeld voor NEN 7510 en ISO 27001. Relevante eisen worden vertaald naar toegangsbeheer, logging, herleidbaarheid, gegevensbescherming en de inrichting van ontwikkeling en beheer.

Toegang en gegevens

Rollen bepalen welke delen van de applicatie en welke gegevens iemand ziet. Gevoelige instellingen en sleutels worden apart van de code beheerd. De applicatie legt technische fouten en relevante gebeurtenissen vast, zodat beheer kan zien wat er gebeurt.

Na oplevering

Na oplevering horen monitoring, updates en herstel bij een betrouwbare productieomgeving. We richten zichtbaar in of de applicatie beschikbaar is, of koppelingen blijven lopen en waar fouten ontstaan. De documentatie beschrijft de architectuur, de belangrijkste keuzes en de stappen voor beheer en overdracht.