Skip to content
Packages Examples Agents Blog Get started

Examples

Every example is a living tutorial for the framework sitting next to it: real DI container, real providers, real web stack, offline-deterministic backends. They are gated in CI the same way the packages are (make test-examples, make verify-examples, make check-examples).

Copy an example instead of inventing a tree. If the generated app does not look like one of these — application.yaml, app.py / module.py as composition root, a provider that only registers, services that return Result[T, E], feature types in domains/, app providers in di/ — it will not look like Oridecon.

Sandbox notice: examples run with in-memory state that resets often, and the auth consoles use seeded credentials. Do not send real secrets.

24 apps

Fleet

One process, every console.

Example Hub

:7000

Boots every web example’s real Application in-process and mounts it under /examples/<slug>/. One port, live health, standalone ports preserved.

orideconoridecon-web
PYTHONPATH=examples/example-hub/src uv run python -m example_hub
Source

AI

Agents, RAG, memory, guards, prompts.

Support Agent

:8082

A ReAct support-desk agent with three container-injected tools, a scripted LLM boundary, and a trace table in the browser.

oridecon-ai-agentsoridecon-web
PYTHONPATH=examples/support-agent/src uv run python -m support_agent
Source

Memory Chat

:8083

Episodic plus semantic memory with owner isolation. Alice’s allergies never leak into Bob’s session — no model calls.

oridecon-ai-memoryoridecon-web
PYTHONPATH=examples/memory-chat/src uv run python -m memory_chat
Source

AI Guardrails

:8084

Injection blocking, PII redaction, oversize denial, restricted models, and budget exhaustion — with a live audit trail.

oridecon-ai-guardoridecon-ai-governanceoridecon-web
PYTHONPATH=examples/ai-guardrails/src uv run python -m guard_gate
Source

Prompt Lab

:8085

Version a support-reply prompt, inspect history, roll back, and run deterministic A/B over four seeded cases.

oridecon-ai-promptoridecon-web
PYTHONPATH=examples/prompt-lab/src uv run python -m prompt_lab
Source

Feedback Loop

:8086

Rate canned answers; low scores promote into a regression suite. Close the quality loop without a model call.

oridecon-ai-feedbackoridecon-ai-evaluationoridecon-web
PYTHONPATH=examples/feedback-loop/src uv run python -m feedback_loop
Source

RAG Docs

:7075

Cited answers over the framework’s own markdown. Stdlib hashing embedder, pluggable vector vs MMR retrieval.

oridecon-ai-ragoridecon-vectororidecon-web
PYTHONPATH=examples/rag-docs/src uv run python -m rag_docs
Source

LLM Router

:8093

Content generation and structured extraction behind a scripted LLM client — repeatable, no API key.

oridecon-ai-llmoridecon-web
PYTHONPATH=examples/llm-router/src uv run python -m content_gen
Source

RAG Pipeline

:8096

Chunk, upsert, and retrieve through VectorStoreProtocol. Cosine collection at boot, no external vector database.

oridecon-vectororidecon-ai-ragoridecon-web
PYTHONPATH=examples/rag-pipeline/src uv run python -m ragdocs
Source

Auth

Sessions, RBAC, API keys, MFA.

Auth Web

:8081

Cookie sessions, JWT claims, lockout after five failures, constant-time verification. Register and manage accounts in the browser.

oridecon-authoridecon-web
PYTHONPATH=examples/auth-web/src uv run python -m auth_web
Source

Auth RBAC

:8090

Live authorize() over a permission matrix. Viewer / editor / admin personas, wildcard patterns, role inheritance.

oridecon-authoridecon-web
PYTHONPATH=examples/auth-rbac/src uv run python -m rbac_console
Source

Auth API Keys

:8091

Scoped machine keys shown once as raw secrets. Revoke and the next X-API-Key request is 401.

oridecon-authoridecon-web
PYTHONPATH=examples/auth-apikeys/src uv run python -m apikey_console
Source

Auth MFA

:8092

Pending-challenge sessions, TOTP enrollment with backup codes, attempt capping, password required to disable.

oridecon-authoridecon-web
PYTHONPATH=examples/auth-mfa/src uv run python -m mfa_console
Source

Web & events

Realtime, CQRS, the event bus.

Realtime Monitor

:7071

SSE history replay then live stream, a WebSocket operator channel, and a vanilla EventSource client. No npm.

oridecon-weboridecon-events
PYTHONPATH=examples/realtime-monitor/src uv run python -m ops_console
Source

Event-Driven Orders

:7074

CQRS order lifecycle with domain events, a read-model projection, notification side effects, and a transactional outbox.

oridecon-eventsoridecon-web
PYTHONPATH=examples/event-driven-orders/src uv run python -m orders
Source

Event Timeline

:8102

Publish checkout facts onto an in-memory stream, watch subscribers, inspect sequence numbers, replay without duplicates.

oridecon-eventsoridecon-web
PYTHONPATH=examples/event-timeline/src uv run python -m timeline_lab
Source

Infrastructure

SQL, queues, storage, flags, webhooks.

Resilient Rates

:7073

Retry, circuit breaker, timeout, single-flight, and stale fallback against a scriptable hostile upstream.

oridecon-resilienceoridecon-cacheoridecon-web
PYTHONPATH=examples/resilient-rates/src uv run python -m rates
Source

Monitor Stack

:8094

Health registry, counters, gauges, histograms, and timed spans through the real MonitorModule protocols.

oridecon-monitororidecon-web
PYTHONPATH=examples/monitor-stack/src uv run python -m monitorstack
Source

Queue Worker

:8095

Publish to a tasks topic and watch MessageConsumer handle it. Retry metadata rides on BusMessage.

oridecon-queueoridecon-web
PYTHONPATH=examples/queue-worker/src uv run python -m queueworker
Source

SQL Repository

:8097

CRUD for a task resource on in-memory SQLite. SQL stays in the repository; the controller stays thin.

oridecon-sqloridecon-web
PYTHONPATH=examples/sql-repository/src uv run python -m taskapp
Source

Webhook Relay

:8098

Inbound webhooks with package-managed subscriptions and constant-time HMAC-SHA256 verification.

oridecon-webhookoridecon-web
PYTHONPATH=examples/webhook-relay/src uv run python -m webhookrelay
Source

Feature Flags

:8099

Percentage, variant, and attribute rollouts with runtime overrides, TTL cache flush, and an audit trail.

oridecon-featuresoridecon-web
PYTHONPATH=examples/feature-flags/src uv run python -m release_control
Source

Approval Flow

:8100

Purchase approval as a real StateMachine: manager and finance gates, retry, compensation, transition history.

oridecon-workfloworidecon-web
PYTHONPATH=examples/approval-flow/src uv run python -m approval_flow
Source

Artifact Vault

:8101

Object-storage workbench on the memory driver: upload, metadata, ETag, download, delete, honest access capabilities.

oridecon-storageoridecon-web
PYTHONPATH=examples/artifact-vault/src uv run python -m artifact_vault
Source

From the framework repository root (dbtinoy-/oridecon, branch dev). The hub lives in examples/example-hub (Python module example_hub) and mounts every web example under /examples/<slug>/.

Terminal window
# one port for the whole fleet
PYTHONPATH=examples/example-hub/src uv run python -m example_hub
# → http://127.0.0.1:7000
# any example standalone
PYTHONPATH=examples/support-agent/src uv run python -m support_agent
# → http://127.0.0.1:8082
make test-examples

The Makefile still exposes make demos-up / make demos-status / make demos-down as the fleet control commands. Prefer the PYTHONPATH=examples/<slug>/src invocations above — they match the directories on disk.

New apps of your own start with the CLI, not by copying the hub:

Terminal window
uv add oridecon-cli
oridecon new project my-app --template web-api
oridecon run

Source: examples/ in the framework repository.

  • application.yaml carries every runtime knob. Python contains no literal configuration; services receive a frozen config through DI.
  • src/<pkg>/app.py or module.py is the composition root. Providers wire singletons. Controllers are stateless HTTP adapters. Services own domain logic behind contracts and return Result[T, E].
  • Feature types live in domains/. App providers live in di/ (*_provider.py). Modules have provider.py. Cross-cutting code stays in shared/.
  • Errors speak RFC-9457 ProblemDetail. Logging is structured. Time, identity, and hashing come from ambient capabilities.
  • Tests fake only at contract boundaries; every public route has an ASGI round-trip test.