53
Views
3
Comments
Implementing Native Vector Search in ODC (No External DB)

Hi everyone,

I see a lot of discussions lately about RAG (Retrieval-Augmented Generation) and the challenges of Data Residency.

For many of us in regulated industries (Finance, Gov, Health), sending sensitive data to external Vector Databases like Pinecone or Qdrant isn't always an option due to compliance boundaries.

I spent the weekend exploring a "Zero Dependency" architecture to solve this. I wanted to see if we could store Vectors directly inside ODC Entities and perform Similarity Search using C# External Logic—keeping the data 100% within the ODC trust boundary.

I wrote up the full architectural breakdown and code logic here: 👉 https://medium.com/@michael.de.guzman/proving-vector-storage-retrieval-inside-outsystems-developer-cloud-a89d8fb88661

How it works (High Level):

  1. Storage: Vectors are stored as JSON text in a standard ODC Entity.

  2. Retrieval: We pass the vectors to a C# External Library.

  3. Math: The C# library handles the Cosine Similarity math and returns the "Top-K" matches.

One Request: While this works well for smaller datasets, the JSON serialization between ODC and C# is a bit of a tax. I’ve submitted an Idea to get Native Vector Data Types supported in the platform to fix this.

If this architecture interests you, please give the idea a vote here: 👉 https://www.outsystems.com/ideas/15247/native-vector-data-type-and-server-side-similarity-search-for-odc/

Hope this helps anyone trying to build compliant AI agents in ODC!

2023-10-16 05-50-48
Shingo Lam

sounds great, will try it later

thank you

2025-05-31 09-56-11
TheSubuIyer
Champion

This is a very helpful and well written article @Michael de Guzman . I have voted for you Idea hope it gets implemented.

2026-03-20 01-28-51
Saugat Biswas

Nicely explained mate!!

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.