Odysseus is the third named version of Guara Cloud. If Achilles was about growing up and Hector was about seeing itself, Odysseus is about navigating, through time, through space, and across the borders of your own architecture.
This release leans into three threads: giving the platform the ability to act on your behalf over time, making every leg of a request visible (even the ones that leave for the open internet), and tearing down the wall between your private images and the platform. The result is a platform that does more for you while you sleep, tells the whole story when something goes sideways, and welcomes your containers regardless of where they live.
Scheduled jobs, without keeping a worker around
Fire HTTP, NATS, Redis, RabbitMQ, or Postgres on any minute.
The platform now handles scheduling and dispatch, so you no longer need a container running just
to wait for the right time. Pick a destination from your project’s services, write a payload using
placeholders like {{ run_at }}, {{ worker_id }}, and {{ run_id }}, and we deliver on time
with automatic retries, timeout control, and a full run history. Watch every run, trigger one
manually whenever you need to, and see your cron workers right alongside your other services on
the project map. Every run carries trace context, so a failure becomes a needle that’s easy to
find.
Traces that see the whole request
Every service involved, plus the internet and external destinations.
When a request flows through your backend, hits your Postgres, warms your Redis, and fires an event on NATS, the trace now shows each leg of the trip as its own lane, with a readable name and per-service timings. Calls to the internet and to external destinations (Stripe, OpenAI, S3, any host outside your project) show up as their own nodes on the trace’s mini service map, one for the internet and one per external host. Click a lane to filter the waterfall to that service, or jump straight to the destination service’s detail page. The trace list also gained a chip showing how many services participated in each request.
Always-on CPU profiling
See where your app is spending its time, without touching your code.
Every service now has a Profiling tab with an interactive flamegraph, no agent to install, no dependency to import, no rebuild. Automatic support for Node.js, Java, Go, Ruby, and Rust. There’s a dedicated Profiling Explorer under Operations for longer investigations, and every trace span gets a Profiling tab filtered exactly to that span’s time window, perfect for going from “this request was slow” to “this loop was burning 40% of CPU” in a few clicks. Retention respects your plan, and the flamegraph lives inside the same visual identity as the rest of the dashboard.
Deploy straight from your private registry
Docker Hub, GHCR, Quay, GitLab, Harbor, or any compliant registry.
Bring up services from images in private external registries without an intermediate pipeline.
Drop the registry URL, username, and token into the service wizard (or the Settings tab later) and
we handle authentication on every pull. A Test connection button validates your credentials
before save, with clear messages when something’s off, expired certificate, wrong host, token
without read access. If you’d rather, save without verifying, the action is recorded in your audit
trail. Public images on build_method='image' keep working without any credentials.
An audit trail that tells you what really happened
Filter by success and failure, and rest easy about sensitive data.
Your audit trail now shows the outcome of each action (success or failure) and lets you filter by it, perfect for hunting failed logins, configuration changes that didn’t go through, or actions blocked by permissions. In parallel, we hardened the layer that records these events so tokens, passwords, and API keys are stripped before they ever land in a log, regardless of casing (camelCase, kebab-case, or snake_case). You see what happened, without ever seeing what you shouldn’t.
And across the platform
-
Plan changes (upgrade or downgrade) propagate immediately to retention limits and quotas, no relogin needed.
-
Trace detail page with mini service map, per-service lanes, and a shortcut to the destination service’s page.
-
The log viewer inherits the time range when you open it from a correlation card, no need to re-pick.
-
Clearer error messages on metrics, traces, and profiling, no internal details leaking through to the screen.
-
Trace waterfall lane toggles now have screen-reader labels and adequately sized tap targets on mobile.
-
Bilingual docs (pt-br + en) updated to cover cron workers, multi-service traces, continuous profiling, and external registries.
-
Standardised error codes across every new surface, paired with short, actionable toasts.
-
A quiet round of reliability improvements across the platform’s background services, firmer high-availability behaviour, fewer overlapping internal tasks, and audit trails for the moments something genuinely jams.
And more, a handful of small touches across the dashboard, quieter messages, tighter copy, and a fleet of improvements we’d rather ship than narrate.