Bondy Developer Documentation

website·Indexed 32 days ago

https://developer.bondy.io

Documentation for Bondy, a platform utilizing the Web Application Messaging Protocol (WAMP) for real-time interactive communication. Includes reference guides for the WAMP API, HTTP API Gateway, realm management, user authentication, and access control via grants and groups. Features tutorials on building marketplaces with Python and VueJS, configuring Kafka Bridges, and managing OAuth2 tokens.

Tokens
39.3K
Snippets
165
Records
277
Agent score
60%

What's inside Bondy

  1. Overview of Bondy RBAC Grant system

    A Grant in Bondy is a directive that defines access control policies by specifying which entities (users, groups, or roles) can perform specific actions on particular resources. It is the core mechanism for enforcing RBAC (Role-Based Access Control) within the system.
  2. Overview of the Bondy HTTP API Gateway

    The Bondy HTTP API Gateway functions as a reverse proxy. It accepts incoming REST API actions and translates them into WAMP (Web Application Messaging Protocol) actions, which are then executed over a Realm's procedures and topics.
  3. Overview of the Bondy HTTP API Gateway

    The Bondy HTTP API Gateway functions as a reverse proxy that translates incoming REST API actions into WAMP (Web Application Messaging Protocol) actions. This allows external HTTP clients to interact with procedures and topics hosted within a Bondy Realm.
  4. Overview of Bondy Unified Event & Service Mesh

    Bondy is a unified event and service mesh that integrates RPC (Remote Procedure Call) and Pub/Sub (Publish/Subscribe) into a single protocol. It eliminates the need to assemble multiple disparate systems by providing built-in support for authentication, authorization, service discovery, and load balancing for distributed applications.
  5. Overview of Web Application Messaging Protocol (WAMP)

    The Web Application Messaging Protocol (WAMP) is a routed protocol for polyglot distributed applications. It utilizes a WAMP Router as an L7 application networking platform to route messages between clients. WAMP unifies two primary communication patterns: Publish-Subscribe (PubSub) and Routed Remote Procedure Calls (rRPC). It supports multiple transports (e.g., WebSockets, TCP, Unix domain sockets) and multiple serialization formats (e.g., JSON, Msgpack), allowing clients to be written in different languages and use different transport/serialization combinations.
  6. Overview of Bondy application networking platform

    Bondy is a production-ready application networking platform built on the Web Application Messaging Protocol (WAMP). It replaces fragmented infrastructure (like separate API Gateways, Message Brokers, and Service Meshes) with a single protocol and component that provides:

    • Unified RPC (Remote Procedure Call) and Pub/Sub (Publish/Subscribe) communication.
    • A peer-to-peer programming model where any participant (web app, mobile app, backend service, or IoT device) can act as both a service provider and consumer.
    • Built-in service discovery, load balancing, authentication, and authorization.
    • Multi-tenancy support through 'realms'.
    • Horizontal scalability via a masterless distributed architecture with anti-entropy and gossip protocols.
    • Integration capabilities via an HTTP API Gateway and message broker bridges.
  7. Overview of Bondy Certificate Manager

    The bondy_cert_manager centralizes TLS operations for Bondy, allowing runtime management of certificates without restarting the service. It handles three primary areas:

    1. CA Trust Store: Merges CA certificates from the certifi Mozilla bundle, the OS trust store, and a user-configured PEM file (cert_manager.cacertfile). This store is used for all outbound TLS connections (e.g., OIDC providers, RPC Gateway HTTP backends).
    2. Server Certificates: Manages per-listener certificates and keys. It supports live rotation via an sni_fun callback, ensuring new connections use updated certificates while existing connections remain active until they naturally close.
    3. mTLS: Manages per-listener client CA pools, verification modes, and certificate requirements for mutual TLS authentication.
  8. Overview of Web Application Messaging Protocol (WAMP)

    The Web Application Messaging Protocol (WAMP) is an open standard designed for distributed application communication. It unifies two fundamental messaging patterns into a single protocol: Remote Procedure Calls (RPC) for request-response communication and Publish/Subscribe (Pub/Sub) for event distribution. This unification allows diverse components—such as web apps, mobile apps, backend services, and IoT devices—to use a single client library and connection for all messaging needs, reducing operational overhead and integration complexity.
  9. Overview of Bondy Security Sources

    Security sources are access control rules used to manage authentication mechanisms in Bondy. They restrict access based on the incoming IP address (CIDR masks) and the authentication method used. A user cannot be authenticated to Bondy until one or more sources are assigned to them. Sources can be applied to a specific user, multiple users, or all users (using the keyword all). If a source is applied to all and another is applied to a specific user, the more specific user-assigned source takes precedence.
  10. Overview of Bondy Bridge Relay (Edge)

    A Bondy Edge router (edge node) is an operational mode that allows a router located at a network boundary (e.g., on-premises, office, or home) to connect to a remote Bondy cluster. Unlike a standard cluster node, an edge node extends Bondy routing capabilities to a subset of realms. Establishing an edge connection requires synchronizing the following state between the edge and remote nodes:

    • Realm Configuration State: Includes public signing (EC) and encryption (RSA) keys, realm prototypes (group, source, and grant definitions), user data (authorized_keys only), group data, source data, and grant data. Note: Private keys and user passwords are NOT replicated.
    • Realm Registry State: Includes registrations and subscriptions.
  11. Understand Active Anti-entropy (AAE) in Bondy

    Active Anti-entropy (AAE) is a periodic automatic synchronization protocol used by Bondy to resolve inconsistencies (Entropy) between data replicas across cluster nodes. Bondy employs a Push-Pull strategy using Merkle Trees to identify divergent or missing keys. When a divergence is found, nodes exchange the differing keys and apply a conflict resolution function specific to the entity type.
  12. Understand Distributed System Consistency Models

    A Consistency Model is a contract between the programmer and a distributed system. It guarantees that if specific rules are followed, data will remain consistent (non-contradictory) and the results of reading, writing, or updating data will be predictable. Distributed system properties are generally defined as the intersection of safety and liveness properties:

    • Safety Properties: Ensure that "something bad will never happen" (e.g., mutual exclusion, deadlock freedom). A violation of a safety property can be proven by a finite execution.
    • Liveness Properties: Ensure that "something good will eventually occur" (e.g., starvation freedom, guaranteed service). No partial execution is irremediable; the required outcome can still occur in the future.