_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
References Technologies Blog Know-how Tools
About Collaboration Careers
CS EN
Let's talk

GDPR and IT Systems — Technical Preparation for the Regulation

13. 05. 2018 5 min read CORE SYSTEMSai

On May 25, 2018, GDPR — General Data Protection Regulation — comes into effect. Two weeks before the deadline, we summarize the specific technical measures that IT systems must comply with. No legal theory, just code, architecture, and tools.

Why GDPR is a Technical Problem

GDPR is not just a matter for the legal department. Articles 25 (Data Protection by Design) and 32 (Security of Processing) explicitly require technical measures. If your system cannot delete personal data of a specific user, you have a problem — regardless of how many consent forms you have on your website.

Fines up to 20 million EUR or 4% of global turnover are not a theoretical threat. Irish and French data protection authorities have already announced they will actively monitor compliance. The Czech Republic has announced a “soft start,” but this doesn’t mean you can ignore technical requirements.

Personal Data Mapping

The first step is data inventory — mapping where personal data is located throughout your systems. A typical enterprise system has data scattered across:

  • Relational databases — primary storage, customers, users, orders tables
  • Full-text indexes — Elasticsearch, Solr often index names, emails, addresses
  • Cache layers — Redis, Memcached may hold session data with PII
  • Logs — application logs commonly contain IP addresses, user-agent, sometimes names
  • Backups — database dumps contain complete copies of data
  • Message queues — Kafka topics, RabbitMQ queues with business events

We recommend creating a data flow diagram that shows the path of personal data through the entire system. Without this diagram, you cannot reliably implement the right to erasure.

Right to Erasure — Technical Implementation

Article 17 of GDPR gives data subjects the right to erasure of their personal data. Technically, this means:

-- Soft delete with anonymization
UPDATE customers SET
    first_name = 'DELETED',
    last_name = 'DELETED',
    email = CONCAT('deleted_', id, '@removed.local'),
    phone = NULL,
    address = NULL,
    deleted_at = NOW(),
    deletion_reason = 'GDPR_REQUEST'
WHERE id = :customer_id;

-- Cascading anonymization in related tables
UPDATE orders SET
    shipping_name = 'DELETED',
    shipping_address = 'DELETED'
WHERE customer_id = :customer_id;

Why not hard delete? In many systems, there are referential integrity constraints, accounting records, and audit trails that you cannot simply delete. Anonymization is a GDPR-compliant alternative — data ceases to be personal.

Don’t forget about deletion propagation to all subsystems: Elasticsearch index, Redis cache, Kafka consumer groups. Implement an asynchronous “deletion event” that all systems subscribe to.

Data Encryption — At Rest and In Transit

GDPR explicitly mentions encryption as an example of appropriate technical measures (Article 32, paragraph 1a).

  • In transit — TLS 1.2+ for all communication, including internal services. Mutual TLS between microservices (see our article on Istio).
  • At rest — Transparent Data Encryption (TDE) at the database level. PostgreSQL supports pgcrypto, MySQL has InnoDB tablespace encryption.
  • Application-level encryption — for particularly sensitive data (social security numbers, health records) encrypt at the application level with a dedicated key management system (HashiCorp Vault, AWS KMS).

Pseudonymization

GDPR explicitly mentions pseudonymization as a technical measure that reduces risk for data subjects. Pseudonymized data still falls under GDPR, but the risk in case of a breach is significantly lower.

# Pseudonymization using HMAC
import hmac, hashlib

def pseudonymize(value, key):
    return hmac.new(
        key.encode(),
        value.encode(),
        hashlib.sha256
    ).hexdigest()[:16]

# Original: [email protected]
# Pseudonym: a3f8b2c1d4e5f6a7

Store the key for reverse mapping separately from pseudonymized data — ideally in an HSM or key management system. Without the key, data is irreversibly anonymous.

Audit Logs and Data Processing Records

Article 30 requires records of processing activities. Implement an audit log that records every access to personal data:

  • Who accessed (user ID, role)
  • When (timestamp with timezone)
  • What (which data, which subject)
  • Why (legal basis — consent, contract performance, legitimate interest)
  • What they did (read, update, delete, export)

The audit log must be immutable — append-only storage. We recommend a dedicated log store (Elasticsearch with write-once indexes, or blockchain-inspired hash chain).

Technically, you need a system that:

  • Stores granular consents — separately for marketing, analytics, third-party sharing
  • Records the version of terms the user consented to
  • Enables consent withdrawal with immediate propagation to all processing systems
  • Provides an API for checking consent validity before each processing operation

Data Portability — Export in Machine-Readable Format

Article 20 gives data subjects the right to data portability. Implement an export endpoint:

GET /api/v1/users/{id}/data-export
Accept: application/json

Response:
{
  "personal_data": {
    "name": "Jan Novák",
    "email": "[email protected]",
    "created_at": "2017-03-15T10:00:00Z"
  },
  "orders": [...],
  "preferences": {...},
  "consent_history": [...]
}

JSON or CSV format is sufficient. Export must be available within 30 days of the request.

Data Retention — Automatic Expiration

GDPR requires that personal data not be kept longer than necessary. Implement retention policies:

  • TTL on database records
  • Automatic cronjob for deleting/anonymizing expired data
  • Different retention periods for different data types (accounting records 10 years, marketing consents until withdrawal)

Breach Notification — Detection and Reporting

Article 33 requires breach notification within 72 hours. This means you need:

  • Detection — SIEM system (ELK Stack, Splunk) with alerts for anomalous PII access
  • Classification — automatic determination of whether a breach involves personal data
  • Incident response playbook — documented procedure for notifying the supervisory authority and data subjects

GDPR is an Opportunity, Not Just an Obligation

Technical GDPR implementation forces organizations to finally address problems they’ve been postponing for years — data governance, encryption, audit trail, clean APIs. Systems that undergo GDPR preparation will be more robust and secure. And that’s value that goes beyond compliance.

At CORE SYSTEMS, we help clients with technical GDPR implementation — from data mapping through anonymization pipelines to audit logging. Contact us if you need help before May 25th.

gdprcompliancesecuritydata protection
Share:

CORE SYSTEMS

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.

Need help with implementation?

Our experts can help with design, implementation, and operations. From architecture to production.

Contact us