Diagrid
Dapr Agents

ZEISS Vision: Orchestrating Document Data Extraction with Dapr Agents

ZEISS built a production-grade document extraction pipeline using Dapr Agents and Dapr Workflow, going from prototype to production in just two months, with zero labelled training data and recognition results on par with a specialized machine learning system.

Woman wearing ZEISS smart glasses

Company Background

ZEISS is a German optics and optoelectronics manufacturer, with a global reputation for precision in lenses, microscopes, medical technology, and industrial measurement systems. In the Vision Care segment, ZEISS manufactures prescription lenses worn by patients worldwide. Their manufacturing processes demand exacting accuracy; a fraction of a dioptre in the wrong direction produces a lens that doesn't work for the patient.

Overview

ZEISS faced a deceptively hard problem at the start of their lens manufacturing pipeline: the input data was a mess. Fabian Steinbach, Software Architect at ZEISS, describes the challenge:

"To manufacture precision lenses, you need structured optical data, but sometimes all we have is a photo of a hand-scribbled note."

Prescription documents arrive in every imaginable format: handwritten notes, typed forms, multiple languages, and different writing systems. Getting structured optical data out of those documents accurately and reliably is critical. A wrong value means a wrong lens.

To solve this, ZEISS built a production-grade document extraction pipeline using Dapr Agents and Dapr Workflow, going from prototype to production in just two months, with zero labelled training data and recognition results on par with a specialized machine learning system.

Optical Character Recognition (OCR) Pipeline Solution Architecture
Optical Character Recognition (OCR) Pipeline Solution Architecture

The Problem

Prescription documents received from patients by ZEISS are entirely unstandardized. They range from hand-scribbled notes to typed forms, spanning multiple languages and writing systems, much like the paperwork a patient receives from their doctor. The stakes are high: extracting the wrong value doesn't just cause a software error; it produces the wrong lens for a patient. Manual processing was not a scalable option, so ZEISS set out to automate the extraction reliably.

Why Dapr Agents?

Modern AI models proved surprisingly capable of interpreting messy prescription documents. But raw model capability wasn't enough to ship to production. Steinbach identified three non-negotiable requirements for ZEISS: control, reliability, and flexibility.

Control

ZEISS deliberately avoided a fully autonomous agent setup. Instead, the team constrained the AI within a structured Dapr Workflow: pre-processing → OCR → targeted LLM/agent calls. This gave ZEISS predictable, auditable results rather than the unpredictable outputs a free-running agent might produce.

Reliability

Dapr Workflow's durable execution model persists state after every step. If something fails mid-process, ZEISS's workflow resumes from where it left off — it doesn't start over.

“State is persisted after each step. If something goes wrong midway through, the process doesn't start over again. So an expensive, already-completed OCR task doesn't run again. That saves time and cost.”

Fabian Steinbach

Fabian Steinbach

Software Architect, ZEISS

Flexibility

The AI model landscape evolves quickly. By using Dapr's Conversation API building block, ZEISS can swap in a newer or cheaper model by changing configuration alone — no code changes required.

“Even when the model landscape changes, the workflow should stay stable. If a better or cheaper model appears tomorrow, we can use Dapr's conversation building block and just change the configuration.”

Fabian Steinbach

Fabian Steinbach

Software Architect, ZEISS

Architecture

The architecture is designed for future-proofing and scale. By leveraging event-driven scaling with KEDA and decoupled microservices via Dapr, the system is built to seamlessly absorb high-volume, global order loads as new processes are continuously migrated to the new platform. Dive deeper into the architecture.

Key Takeaways

Steinbach distilled the ZEISS project into three lessons that apply well beyond their use case:

  1. Constrain the AI. A workflow-constrained agent outperformed a free-running one for ZEISS's use case. Guardrails aren't a limitation — they're a feature.

  2. Use the right tool for the job. ZEISS mixed specialized OCR models, general-purpose LLMs, and deterministic logic. If a plain function can do the job, an LLM shouldn't be used.

  3. Decouple model selection from code. Changing models via config — not code — means ZEISS can always leverage the best available model without engineering overhead.

Results

Development time to production in 2 months

Zero labelled training data required

Recognition accuracy on par with a specialized ML system


Video

You can watch the video of Fabian Steinbach at KubeCon EU 2026 Keynote — ZEISS Agents Case Study

Key Resources

Ready to get started?

See how Diagrid can help you run Dapr in production with confidence.

Related Case Studies