Seamless Communication Across Mosaic Services

Discover how Axinom Mosaic’s API-first design fosters flexible and secure interservice communication. The philosophy is simple — Everything doable in UI (and more) can also be achieved using API.

Don’t have time?
Book a demo

Interservice communications illustration

TRUSTED BY

SKY logo ZDF logo Canela Media logo Mansa logo Beyond Dutch logo Lindau Nobel Laureate Meeting logo
Two modes of communication
GraphQL logo

Synchronous communication

Every Mosaic service provides a GraphQL API, making it easy for other services to access its features. While REST remains available for custom or third-party integrations, GraphQL is the native and preferred method for seamless communication within Mosaic.

Learn more
RabbitMq logo

Asynchronous communication

Mosaic services communicate using RabbitMQ for messaging. Each environment has its own dedicated RabbitMQ virtual host (vhost), ensuring messages stay isolated and secure within that environment.

Learn More

Powerful GraphQL APIs

Mosaic’s GraphQL APIs empower synchronous communication, offering a schema-based, strongly-typed interface for consistent and precise data access. Each Mosaic service offers a GraphQL API out of the box and follows the same pattern for authentication and authorization.

GraphQL Call

GraphQL Call

Schema-based and strongly typed

Ensures development consistency, provides immediate feedback on invalid requests, and acts as a source of truth for developers.

Flexible client-specified queries

Tailor queries to specific client needs, reducing backend changes, and enabling faster frontend iteration.

Robust developer tooling

Includes GraphiQL for schema exploration, Apollo Federation, Postgraphile for schema generation, Codegen, and more.

Easier version management

API evolution without breaking existing integrations, and in a backward-compatible manner due to client-defined queries, field-level deprecation, optional arguments, and input types.

Precise data fetching

Reduces traffic and improves performance with no over-fetching or under-fetching.

Robust Asynchronous Messaging with RabbitMQ

Mosaic runs its own cluster of a well-known message broker RabbitMQ. It provides scalable and reliable interservice communication. Mosaic abstracts away the complexities for developers and provides easy to use messaging interface supporting patterns like commands and events, but also transactional inbox/outbox.

Asynchronous communication with commands and events using RabbitMQ as a message broker illustration

Asynchronous communication with commands and events using RabbitMQ as a message broker

Commands

Services can send commands to other services requiring to perform a specific action or task; similar to API calls just in an asynchronous manner.

Events

Services (publishers) can emit events to which other services (subscribers) can subscribe and perform their specific actions.

Schema-driven

Mosaic uses AsyncAPI to specify asynchronous messages using JSON schemas, similarly to how OpenAPI defines REST interfaces. This enables automatic message payload validation.

Transactional Inbox/Outbox

Mosaic uses transactional inbox/outbox patterns to ensure message reliability and consistency when working with asynchronous messaging and databases.

Libraries

Communication with RabbitMQ using the AMQP protocol is hidden behind a simple interface, where all the messaging complexities, such as retries and error handling, are handled by Mosaic and 3rd party libraries.

Want to learn more about using APIs with Axinom Mosaic?

Don’t have time now?
Book a call