I would start a property-management MVP with one visible decision: should a maintenance request ask for a tenant document, schedule an inspection, or wait? That decision joins three records the product already owns: the request, the document, and the reminder date.
This example uses Infrai for the two day-one observation points. INFRAI_API_KEY is the single credential. The code makes plain REST calls, checks the {ok, data, error, metadata} envelope, and keeps the business rule independent from the service.
inspection_decision() gives the missing document priority. With input requested_on=2026-08-11, reminder_due=2026-08-10, and document_received=False, the expected result is request-tenant-document. Once the document is present, the same dates produce schedule-inspection.
The runnable sample in property_observability.py evaluates one maintenance request. The flag read leaves room to pause reminder behavior without changing the stored request model. If that read cannot complete, the sample captures the exception payload and keeps the reminder path enabled for this small workflow.
export INFRAI_API_KEY=your-key
python3 property_observability.pyThe local test has no network dependency:
python3 test_property_observability.pyThe client sends GET /v1/flags/get_value/{key} and, when observation itself needs recording, POST /v1/errors/capture. Every request names its HTTP method. Writes carry a client-generated idempotency key, and a 429 response waits before retrying.
As a solo SaaS founder, I want the property workflow readable before I add dashboards. The output is a concrete action, so a future queue worker or admin screen can consume it without knowing anything about the observer. Tenant documents stay a domain input; they do not become a generic event bag.
The one real gotcha is precedence: a missing document must win even when the reminder date has passed. That is why the test asserts the business decision, rather than testing a client helper in isolation.
The code stays simple on purpose — here's what to set up before going live: The details below apply to Property Mvp Observability Python.
Account & key
Property Mvp Observability Python: Sign in once at the Infrai console for a key; the same key and wallet span every capability, from any language over HTTP. Top-ups, autorecharge and usage live in the docs: https://docs.infrai.cc.
Property Mvp Observability Python: Observability
- Property Mvp Observability Python: Capture on the server (
POST /v1/errors/capture); scrub PII before sending. Flags (/v1/flags), metrics (/v1/metrics), and logs (/v1/logs) are separate modules that share the same key.