Skip to content

Fundamentals

Everything is a Resource

Hantera is an extendable platform, and there’s one core idea that ties it all together: everything is a resource.

Every “thing” in Hantera — whether it’s an actor, a registry entry, a user, or an app — is addressable by a URI. No matter what you’re working with, it shares this aspect. These resources form a hierarchical tree, similar to a file system on your computer. You’ll see this tree reflected in the URIs that appear in API endpoints, manifest files, and permission paths:

actors/order/b3cf0d63-6ad7-4923-8060-90fb6935954d
registry/settings/shipping
components/my-component

If you’re familiar with Unix, you’ll recognize the philosophy. Unix was built on the idea that everything is a file. Your printer, your network socket, your process — they all show up as files. That’s also why your USB-connected printer shows up as a file in Linux, when it would probably be more natural to think of it as a device on a serial bus.

Hantera takes a similar but more intentional approach. Instead of squeezing everything into a single generic abstraction, different types of resources exist for very specific purposes. Each resource type understands what it represents and what you can do with it. It’s a more powerful abstraction — which makes sense, given that it’s been over 50 years since Unix was created.

Resource Classes

Resources are categorized into resource classes. Each resource class is its own subsystem with its own API, built to solve a specific category of problems. You can think of them as the top-level folders in the resource tree. Authorization can be tailored per resource, giving you fine-grained control over who can access what.

Resources and Apps

This is where Hantera differs from many other platforms. On most platforms, an app is the only way to extend the system. Think of it like an iPhone — installing an app is the only way to add an icon to the home screen or make the phone do anything beyond what’s built into iOS.

Hantera is more like a Linux or Windows operating system. You can create and manage resources directly, without needing a packaged installer. There’s nothing an app can do that you can’t already do by managing resources individually. And in some cases, that’s the better approach.

That said, when you want to distribute multiple resources as a single atomic unit — for reproducibility, reuse, and convenience — apps are very useful. An app is itself a resource, and it packages other resources together into a distributable unit that can be installed into any Hantera system. But apps are just one way to work with Hantera, not the only way.

Explore Resource Classes