Releases: socialsoftware/microservices-simulator
Releases · socialsoftware/microservices-simulator
Command Refactoring and Infrastructure Optimization
What's New
- Command: Introduced
SagaCommandandCausalCommandclasses to decouple transactional logic from base commands. Implemented specialized handlers (SagaCommandHandlerandCausalCommandHandler) 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 EventSubscriberServiceconfiguration. - Standardized Configuration: Introduced
application.yamltemplates and updated services to use${spring.application.name}for consistent property management and discovery.
API Gateway Migration and Docker Optimization
What's New
- API Gateway Restructuring: Moved the API Gateway into the
simulatorlibrary, 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-composeand 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-serviceandgateway. - 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
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
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
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
Saga transactional management is added to the microservices simulator