KPN

A credit decision in seconds. 4x faster than the system it replaced. 99.999% uptime.

Client

KPN

Sector

Telecom / Enterprise backend

Deliverables

Backend platform (Django, Kafka, Postgres, Redis, AWS Kubernetes)

Context

Every time a customer walks into a KPN store to request a phone subscription with a device, KPN needs to make a credit decision. Too lenient, and financial losses from non-payers accumulate. Too strict, and customers are turned away unnecessarily. The legacy system was slow, inflexible, and could not adapt quickly to new fraud patterns.

Elements was asked to build a new customer acceptance platform: a backend system that evaluates creditworthiness in real time, integrates with up to seven external data sources, complies with Dutch consumer credit legislation, and operates without a single point of failure, including during the iPhone launch rush.

What we built

Real-time credit decisions in seconds

The platform evaluates each request against up to seven internal and external services, including BKR, Preventel, and Experian. Calls that can run in parallel do so asynchronously. Long-running calls are grouped and cached. The result: a credit decision in seconds, four times faster than the previous system.

99.999% availability through Kubernetes autoscaling

The platform runs on AWS in a Kubernetes cluster with a precisely configured Event Driven Autoscaler. During the 2022 iPhone launch, when KPN saw one of its highest single-day transaction volumes, the platform scaled automatically and held. Availability exceeded 99.999%.

Real-time configurability without downtime

Business users can modify acceptance policy rules in real time through an admin interface, without touching the codebase or requiring a deployment. When a new fraud pattern emerges, KPN can respond within minutes. The platform includes a full dashboard covering external API calls, database queries, acceptance rates, and configurable time-frame reporting.

Results

4x faster than the legacy system

99.999% platform availability

7 external services integrated

seconds per credit decision

Technology choice

Why Django, Kafka, and Kubernetes on AWS?

Django REST API handles the request layer. Kafka-based async workers process messages without blocking the main flow. Redis caches repeated data fetches. Kubernetes on AWS provides the elastic scaling needed to handle unpredictable peaks, like iPhone launch day, without pre-provisioning expensive capacity year-round.

The platform handles our daily volume of online and offline transactions with the speed and reliability our stores depend on.

How we worked

Elements embedded alongside KPN's engineering and compliance stakeholders, with architecture decisions reviewed against both technical and regulatory requirements. The admin interface was built through iterative feedback sessions with the business users who would operate it daily.

What is next

The platform's configurable rule engine means KPN can adapt acceptance policies as regulations change and new fraud vectors emerge, without rebuilding. The architecture supports adding new data sources and extending to additional product lines beyond mobile subscriptions.

Get in touch:

Rogier de Graaf
Strategy Director
rogier.degraaf@elements.nl

Team as a service

Besides our project-based collaborations, we also offer team members or a complete dev team as a service. Want to know more? Send us a message.