Skip to content
Andrii Voznesenskyi edited this page Nov 10, 2024 · 6 revisions

Welcome to the Paralax Framework Wiki!

The Paralax Framework is a comprehensive, modular .NET framework optimized for developing scalable and resilient microservice architectures on .NET 9.0. This wiki is designed to guide you through setup, component configurations, and advanced features, offering a deeper look into how each Paralax module can empower your distributed systems.


Overview

Paralax offers a robust suite of tools essential for building, managing, and scaling microservices. It provides modules for everything from security and CQRS to logging, message brokering, and cloud optimization, making it highly suitable for cloud-native environments such as Kubernetes and Docker.


Key Features

  • Modular Architecture: Integrate only the components you need.
  • Security-First Design: Encryption, hashing, and secrets management.
  • Advanced CQRS & Event Sourcing: Full support for scalable, event-driven applications.
  • Message Brokering: Asynchronous communication through RabbitMQ, Kafka, and more.
  • Comprehensive Observability: Logging, metrics, and tracing via OpenTelemetry and Jaeger.
  • Cloud-Native Optimization: Seamless deployment on Kubernetes, Docker, and other cloud platforms.

Table of Contents


Getting Started

Begin by setting up Paralax in your project, configuring its modules, and understanding its core capabilities for distributed systems.


Core Components

The framework is modular, allowing you to choose components based on project needs:

  1. Paralax.Auth: Authentication tools, including distributed options.
  2. Paralax.CQRS: Command-Query Responsibility Segregation for scalable microservices.
  3. Paralax.MessageBrokers: Support for RabbitMQ, Kafka, and other messaging systems.
  4. Paralax.WebAPI: Optimized ASP.NET Core Web API framework.
  5. Paralax.Logging: Integrated, extensible logging solutions.

Advanced Features

For added customization, Paralax includes:

  • Event Sourcing (e.g., Paralax.CQRS.EventSourcing)
  • Distributed Tracing (e.g., Paralax.Tracing.Jaeger)
  • Binary Serialization (e.g., Paralax.HTTP for performance-optimized communication)

Module Descriptions

Authentication

  • Paralax.Auth: Basic authentication and authorization.
  • Paralax.Auth.Distributed: Advanced distributed authentication for multi-instance setups.

Command-Query Responsibility Segregation (CQRS)

  • Paralax.CQRS.Commands: Handles command-based write operations.
  • Paralax.CQRS.Queries: Manages query-based read operations.
  • Paralax.CQRS.Events: Supports event-based communication for event sourcing.
  • Paralax.CQRS.EventSourcing: Provides a full event-sourcing solution for event-driven architectures.
  • Paralax.CQRS.WebApi: CQRS support for Web API projects.
  • Paralax.CQRS.Logging: Integrated logging for CQRS operations.

Service Discovery and Load Balancing

  • Paralax.Discovery.Consul: Integrates with Consul for service discovery.
  • Paralax.LoadBalancing.Fabio: Load balancing using Fabio.

Documentation and API Specs

  • Paralax.Docs.Scalar: Basic documentation module.
  • Paralax.Docs.Swagger: Swagger integration for API documentation.

HTTP and Serialization

  • Paralax.HTTP: Provides optimized HTTP client and server support with binary serialization.
  • Paralax.WebApi: A streamlined Web API framework on top of ASP.NET Core.
  • Paralax.WebApi.Scalar: Enhances Web API documentation.
  • Paralax.WebApi.Swagger: Integrates Swagger for Web API documentation.
  • Paralax.WebApi.Security: Advanced security features for Web APIs.

Logging and Observability

  • Paralax.Logging: Extensible logging with support for multiple outputs.
  • Paralax.Tracing.Jaeger: Distributed tracing with Jaeger.
  • Paralax.Tracing.Jaeger.RabbitMQ: RabbitMQ-specific tracing support.

Messaging and Outbox Pattern

  • Paralax.MessageBrokers: Core message broker support.
  • Paralax.MessageBrokers.CQRS: Messaging tailored for CQRS.
  • Paralax.MessageBrokers.Outbox: Implements the outbox pattern for reliable messaging.
  • Paralax.MessageBrokers.Outbox.Mongo: MongoDB integration for outbox storage.
  • Paralax.MessageBrokers.RabbitMQ: RabbitMQ message broker integration.

Metrics and Monitoring

  • Paralax.Metrics.AppMetrics: Application metrics for real-time monitoring.
  • Paralax.Metrics.Prometheus: Prometheus integration for metrics tracking.

Persistence

  • Paralax.Persistence.MongoDB: MongoDB support for persistence.
  • Paralax.Persistence.Redis: Redis support for cache and data storage.

Secrets Management and Security

  • Paralax.Secrets.Vault: Secure secrets management using Vault.
  • Paralax.Security: Core security features, including encryption and data protection.

gRPC

  • Paralax.gRPC: Provides support for gRPC services.
  • Paralax.gRPC.Protobuf: Protobuf serialization for gRPC services.

Contributing

We welcome contributions! Check out our Contributing Guide for ways to get involved.

License

Paralax is licensed under the Apache-2.0 License. See the LICENSE file for details.


Happy coding with Paralax! Explore, customize, and enjoy building resilient microservices with this powerful framework. Feel free to contribute, report issues, and help enhance Paralax for everyone!