Lhotse

screenshot of Lhotse

A starter kit for writing event-sourced web applications following domain-driven design principles. Based on Spring Boot and Axon.

Overview

Lhotse is an innovative starter kit designed for developers looking to create event-sourced application backends that adhere to domain-driven design principles. Built on robust technologies like Spring Boot, Axon, and Keycloak, Lhotse offers a comprehensive solution tailored for scalability and security. Whether you're kicking off a new project or seeking to refactor an existing backend, Lhotse provides essential tools to streamline development while addressing modern privacy regulations and architectural challenges.

This starter kit is particularly appealing for its ease of integration. It boasts features that simplify the handling of command and event processing, and its sample code effectively demonstrates the entire flow from API endpoints to event storage. This makes it an excellent choice for teams wanting to implement sophisticated systems without getting bogged down in the intricacies typically involved in starting a new project from scratch.

Features

  • Horizontal Scalability: Lhotse supports distributed command and event processing, making it ideal for applications needing to scale horizontally.

  • Crypto-Shredding Support: It addresses compliance with privacy regulations like GDPR by offering crypto-shredding capabilities for event logs.

  • Deduplicating Filestore Abstractions: Provides support for various backing stores, including S3 buckets and Mongo GridFS, ensuring data integrity and efficient storage management.

  • Security and Access Control: Built-in support for single sign-on (SSO) and role-based authorization allows for secure management of user identities.

  • Comprehensive Sample Code: Includes examples that showcase end-to-end command handling and event processing, helping developers understand implementation quickly.

  • Containerized Development Environment: Utilizes Docker for a convenient containerized setup, enabling easier deployment and testing.

  • Integration with Keycloak: Simplifies authentication and session management, allowing you to focus on core application logic without worrying about security overhead.