MDDB Use Cases
Real-world examples and use cases for MDDB.
1. Documentation Platforms
Store and version API documentation, technical guides, and knowledge bases.
Features Used
- Revision history for tracking documentation changes
- Metadata search for finding docs by category, version, status
- Multi-language support for internationalized documentation
- Template variables for environment-specific content
Example
mddb-cli add api-docs authentication en_US -f auth.md \
-m "version=2.0,status=published,category=security"
mddb-cli search api-docs -f "status=published" --sort updatedAt
curl -X POST http://localhost:11023/v1/get \
-d '{"collection": "api-docs", "key": "authentication", "lang": "en_US",
"env": {"apiUrl": "https://api.example.com"}}'
Perfect for: Technical documentation, API references, developer guides, internal wikis
2. Content Management Systems (CMS)
Manage blog posts, articles, and pages with multi-language support.
Features Used
- Multi-language documents (same key, different languages)
- Rich metadata (author, tags, category, published status)
- Full-text search for content discovery
- Webhooks for cache invalidation on publish
Example
mddb-cli add blog "getting-started" en_US -f post-en.md \
-m "author=John,tags=tutorial|beginner,status=published"
mddb-cli add blog "getting-started" pl_PL -f post-pl.md \
-m "author=John,tags=tutorial|beginner,status=published"
mddb-cli search blog -f "status=published" -l 20
mddb-cli fts blog --query="getting started markdown" --limit=10
curl -X POST http://localhost:11023/v1/webhooks \
-d '{"url": "https://cdn.example.com/invalidate", "events": ["doc.updated", "doc.added"], "collection": "blog"}'
Perfect for: Blogs, news sites, magazines, multi-language content platforms
3. Configuration Management
Store configuration templates with dynamic variable substitution.
Features Used
- Template variables () for environment-specific configs
- Revision history for config change tracking
- Metadata for environment (prod, staging, dev)
- Document TTL for temporary configurations
Example
cat > nginx.conf.md << 'EOF'
server {
listen 80;
server_name ;
root /var/www/;
location / {
proxy_pass http://:;
}
}
EOF
mddb-cli add configs nginx-prod en_US -f nginx.conf.md \
-m "env=production,service=web,version=1.0"
curl -X POST http://localhost:11023/v1/get \
-d '{"collection": "configs", "key": "nginx-prod", "lang": "en_US",
"env": {"domain": "example.com", "app_name": "myapp",
"backend_host": "localhost", "backend_port": "3000"}}'
Perfect for: Infrastructure configs, Kubernetes manifests, deployment templates, environment-specific settings
4. Knowledge Bases
Build searchable knowledge bases with rich categorization.
Features Used
- Vector search for semantic "how do I..." queries
- Full-text search for keyword-based discovery
- Metadata filtering (category, difficulty, tags)
- Import from URL for external documentation
Example
mddb-cli add kb vpn-setup en_US -f vpn-guide.md \
-m "category=support,difficulty=advanced,tags=network|vpn|troubleshooting"
curl -X POST http://localhost:11023/v1/import-url \
-d '{"collection": "kb", "url": "https://docs.example.com/faq.md", "lang": "en_US"}'
curl -X POST http://localhost:11023/v1/vector-search \
-d '{"collection": "kb", "query": "I cant connect to the network from home",
"topK": 5, "threshold": 0.7, "includeContent": true}'
mddb-cli search kb -f "category=support,difficulty=beginner"
Perfect for: Internal wikis, support documentation, FAQs, troubleshooting guides
5. Microservices Communication
Share templates, content, and configuration between services with high-performance gRPC.
Features Used
- gRPC protocol for low latency (16x faster than HTTP)
- Template variables for service-specific customization
- Multi-language for localized templates
- MCP server for LLM integration
Example (Go)
import (
"context"
"google.golang.org/grpc"
mddb "mddb/proto"
)
// Connect to MDDB
conn, _ := grpc.Dial("localhost:11024", grpc.WithInsecure())
client := mddb.NewMDDBClient(conn)
// Get email template
doc, err := client.Get(context.Background(), &mddb.GetRequest{
Collection: "templates",
Key: "email-welcome",
Lang: "en_US",
Env: map[string]string{
"userName": "John Doe",
"loginUrl": "https://app.example.com/login",
},
})
// Use template
emailBody := doc.GetContentMd()
sendEmail(userEmail, "Welcome!", emailBody)
Perfect for: Template storage, shared content, configuration distribution, service-to-service communication
6. RAG / AI Knowledge Base
Build retrieval-augmented generation (RAG) pipelines with semantic vector search.
Features Used
- Automatic background embedding generation
- Vector search for semantic retrieval
- Full-text search as fallback
- Import from URL for easy knowledge ingestion
- MCP server for direct LLM integration
Example
export MDDB_EMBEDDING_PROVIDER=openai
export MDDB_EMBEDDING_API_KEY=sk-...
export MDDB_EMBEDDING_MODEL=text-embedding-3-small
export MDDB_EMBEDDING_DIMENSIONS=1536
mddb-cli add kb faq-billing en_US -f billing.md -m "category=billing"
curl -X POST http://localhost:11023/v1/import-url \
-d '{"collection": "kb", "url": "https://docs.example.com/pricing.md", "lang": "en_US"}'
curl -X POST http://localhost:11023/v1/vector-search \
-d '{"collection": "kb", "query": "how do I cancel my subscription?",
"topK": 5, "threshold": 0.7, "includeContent": true}'
RAG Pipeline (Python):
from mddb import MDDB
import openai
db = MDDB.connect('localhost:11023', 'read').collection('kb')
results = db.vector_search(
query="how to cancel subscription",
top_k=3,
threshold=0.7,
include_content=True
)
context = "\n\n".join([r["document"]["contentMd"] for r in results["results"]])
response = openai.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": f"Answer based on:\n\n{context}"},
{"role": "user", "content": "How do I cancel my subscription?"}
]
)
print(response.choices[0].message.content)
Perfect for: RAG pipelines, AI assistants, semantic search, chatbot knowledge bases, Q&A systems
See also: RAG Pipeline Guide
7. Event-Driven Architecture
Trigger downstream systems when documents change.
Features Used
- Webhooks with retry logic
- Event types:
doc.added,doc.updated,doc.deleted - Collection filtering
- Webhook payload includes full document
Example
curl -X POST http://localhost:11023/v1/webhooks \
-d '{"url": "https://search.example.com/index", "events": ["doc.added", "doc.updated"], "collection": "blog"}'
curl -X POST http://localhost:11023/v1/webhooks \
-d '{"url": "https://cdn.example.com/purge", "events": ["doc.updated"], "collection": "pages"}'
curl -X POST http://localhost:11023/v1/webhooks \
-d '{"url": "https://notify.example.com/slack", "events": ["doc.deleted"], "collection": "legal-docs"}'
Webhook Payload:
{
"event": "doc.added",
"collection": "blog",
"key": "new-post",
"lang": "en_US",
"timestamp": 1709395200,
"document": {
"collection": "blog",
"key": "new-post",
"lang": "en_US",
"contentMd": "# New Post...",
"meta": {"author": ["John"], "tags": ["news"]},
"addedAt": 1709395200
}
}
Perfect for: Real-time notifications, search index sync, CDN invalidation, audit logging, Slack/Discord notifications
8. Temporary/Cached Content with TTL
Store time-limited content that auto-expires.
Features Used
- Document TTL (time-to-live) in seconds
- Background cleanup worker
- Set/update/remove TTL on existing documents
Example
curl -X POST http://localhost:11023/v1/add \
-d '{"collection": "cache", "key": "session-abc123", "lang": "en",
"ttl": 3600, "contentMd": "# Session Data\n\nUser: [email protected]"}'
curl -X POST http://localhost:11023/v1/set-ttl \
-d '{"collection": "cache", "key": "session-abc123", "lang": "en", "ttl": 7200}'
curl -X POST http://localhost:11023/v1/set-ttl \
-d '{"collection": "cache", "key": "session-abc123", "lang": "en", "ttl": 0}'
mddb-cli set-ttl cache session-abc123 en --ttl=3600
Perfect for: Cache layers, session data, temporary content, rate-limiting state, auto-cleanup
9. Version-Controlled Content
Track all changes with complete audit trail.
Features Used
- Automatic revision history
- Full content snapshots per revision
- Metadata versioning
- Truncate old revisions to save space
Example
mddb-cli add docs readme en_US -f README-v1.md -m "version=1.0,author=Alice"
mddb-cli add docs readme en_US -f README-v2.md -m "version=2.0,author=Bob"
mddb-cli add docs readme en_US -f README-v3.md -m "version=3.0,author=Alice"
curl -X POST http://localhost:11023/v1/truncate \
-d '{"collection": "docs", "keepRevs": 3, "dropCache": true}'
Perfect for: Legal documents, compliance, audit trails, contract versioning, policy management
10. GraphQL-First Applications
Modern web apps with flexible data requirements.
Features Used
- GraphQL API with schema introspection
- GraphQL Playground for development
- Authentication directives (@auth, @hasRole)
- Flexible field selection
- Nested queries
Example
Enable GraphQL:
docker run -e MDDB_GRAPHQL_ENABLED=true -p 11023:11023 tradik/mddb
Query:
query GetBlogPosts {
search(input: {
collection: "blog"
filterMeta: [{key: "status", values: ["published"]}]
sort: "addedAt"
asc: false
limit: 10
}) {
results {
document {
key
contentMd
meta
addedAt
}
}
total
}
}
Mutation:
mutation CreatePost {
addDocument(input: {
collection: "blog"
key: "new-post"
lang: "en"
meta: [
{key: "author", values: ["John"]}
{key: "tags", values: ["tutorial", "graphql"]}
]
contentMd: "# Hello GraphQL"
}) {
id
addedAt
}
}
Vector Search:
query SemanticSearch {
vectorSearch(input: {
collection: "kb"
query: "how to configure authentication?"
topK: 5
includeContent: true
}) {
results {
document { key contentMd }
score
rank
}
}
}
Perfect for: Modern web apps, mobile apps, React/Vue/Angular frontends, Apollo Client integration
11. Multi-language E-commerce
Product catalogs with translations.
Example
mddb-cli add products laptop-x1 en_US -f laptop-en.md \
-m "category=electronics,price=999,sku=LAP-001,stock=50"
mddb-cli add products laptop-x1 pl_PL -f laptop-pl.md \
-m "category=electronics,price=999,sku=LAP-001,stock=50"
mddb-cli add products laptop-x1 de_DE -f laptop-de.md \
-m "category=electronics,price=999,sku=LAP-001,stock=50"
mddb-cli get products laptop-x1 pl_PL
Perfect for: E-commerce, product catalogs, multi-region sites
12. Monitoring & Observability
Track MDDB metrics with Prometheus and Grafana.
Example
export MDDB_METRICS=true
curl http://localhost:11023/metrics
scrape_configs:
- job_name: 'mddb'
static_configs:
- targets: ['localhost:11023']
Available Metrics:
mddb_http_requests_total- request countersmddb_http_request_duration_seconds- latency histogramsmddb_documents_total- document counts per collectionmddb_database_size_bytes- DB file sizemddb_vector_embeddings_total- embedding countgo_goroutines,go_memstats_*- Go runtime
Perfect for: DevOps, SRE, production monitoring
See also: Telemetry Guide
13. Bulk Content Migration
Import large amounts of content from existing systems.
Example
./scripts/load-md-folder.sh ./content blog -r -v
./scripts/load-md-folder.sh ./docs kb -m "status=published" -m "author=Migration Script"
./scripts/load-md-folder.sh ./content blog -d
for file in ./posts/*.md; do
mddb-cli add blog "$(basename "$file" .md)" en_US -f "$file" -m "imported=true"
done
Perfect for: Content migrations, initial data load, batch processing
See also: Bulk Import Guide