Skip to content

Releases: socialsoftware/microservices-simulator

Modularization of the Simulator, Benchmarking, Documentation and Daniel Pereira's MSc Dissertation release

01 May 12:36

Choose a tag to compare

MSc Dissertation Release: This release serves as the official version for Daniel Pereira's MSc Dissertation.

What's New Since v3.1.3

Breaking Changes & Modular Architecture

  • Modularization of the Simulator: Refactored the simulator core from a monolithic structure into distinct, decoupled modules: Aggregate, Coordination, Transaction, Notification, Messaging, Impairment, Monitoring, and Versioning.
  • Package Renames: Renamed core modules for architectural clarity (event is now notification, behaviour is now impairment, and tracing is now monitoring).

Benchmarking

  • Benchmarking Pipeline: Introduced benchmark-deployments.sh, an automated JMeter benchmark script to profile, stress-test, and compare the execution latency of Sagas and Transactional Causal Consistency (TCC) across all centralized and distributed topologies.

Documentation & Visuals

  • Updated README and Guides: Comprehensively updated the README.md and guides/ directory to reflect the new architecture, deployment modes, and configurations.
  • New Architecture Diagrams: Added and updated structural, topological, and layer-specific diagrams in the data/figs/architecture/ directory to visually map the decoupled system.

Nebula DSL & Code Generation (by @LourencoPonces )

  • DSL Integration: Integrated the Nebula Domain Specific Language (DSL) under the dsl/ directory for the automated generation of aggregates, events, functionalities, and repositories.
  • Tooling: Added a VS Code extension for Nebula DSL with syntax highlighting and validation, alongside comprehensive user guides and tutorials.

AI-Assisted Development Support (by @kikoleitao )

  • Introduced a comprehensive 'Agent Context' system (via CLAUDE.md and specialized .claude/skills) to provide structured, repository-aware guidance for LLMs and AI agents working on the codebase.

Command Refactoring and Infrastructure Optimization

18 Mar 21:02

Choose a tag to compare

What's New

  • Command: Introduced SagaCommand and CausalCommand classes to decouple transactional logic from base commands. Implemented specialized handlers (SagaCommandHandler and CausalCommandHandler) to unify command processing across different workflow types.
  • Dynamic Event Registration: Stream event subscribers now auto-register based on the application name, removing the need for manual Aggregate EventSubscriberService configuration.
  • Standardized Configuration: Introduced application.yaml templates and updated services to use ${spring.application.name} for consistent property management and discovery.

API Gateway Migration and Docker Optimization

10 Mar 22:35

Choose a tag to compare

What's New

  • API Gateway Restructuring: Moved the API Gateway into the simulator library, changing it from a Reactive application to an MVC application. Updated routing to be handled within the application microservice configuration.
  • Unified Docker Image: Reconfigured docker-compose and Kubernetes deployments to use a single shared image for all microservices, significantly saving space, and updated configurations to use runtime profile support.
  • Gateway Profiles: Added specific Maven profiles for running the version-service and gateway.
  • Reliability Improvements: Added command timeouts to CommandGateway.
  • Documentation & Configurations: Updated the README, system architecture diagrams, and IntelliJ run configurations to accurately reflect the new API Gateway and Docker/Kubernetes deployment changes.

Distributed Versioning and Command Handler Unification

05 Mar 14:27

Choose a tag to compare

What's New

  • Distributed Version Service: Added Snowflake ID-based distributed versioning option for sagas.
  • Unified Command Handlers: Eliminated per-microservice gRPC and Stream CommandHandler classes in favor of a generic, auto-registering handler.
  • Improved Command Gateways: Stream and gRPC gateways now support local calls when sender and destination match. Added retry fixes and a new Circuit Breaker test.
  • Simplified Docker Compose: Refactored configuration with runtime profile support (SPRING_PROFILES_ACTIVE), removing unnecessary shared configs.
  • Cleanup: Removed deprecated AsyncStep and SagaAsyncStep workflow classes.
  • Updated README & diagrams to reflect the new architecture.

Kubernetes, gRPC and Distributed Tracing Support

24 Feb 16:59

Choose a tag to compare

This release adds Kubernetes deployment support, gRPC as an alternative inter-service communication layer, and distributed tracing with Jaeger across all execution modes.

Distributed Application Support

23 Jan 16:43

Choose a tag to compare

Introduction of the Command Gateway pattern for inter-service communication, support for independently deployable microservices, and addition of RabbitMQ-based messaging via Spring Cloud Stream.

Saga support

09 Jan 11:25
2aab3c7

Choose a tag to compare

Saga transactional management is added to the microservices simulator