We should build systems more loosely coupled to achieve properties like robustness, resilience and scalability, Udi Dahan emphasizes in a recent presentation discussing how we can model our systems using more event-driven and asynchronous patterns and some of the challenges developers face when introducing these principles and patterns into development.
The New York Times R&D Lab has released streamtools, a general purpose, graphical tool for dealing with streams of data, under Apache 2 license.
There are both commonalities and some differences when comparing architectural principles and coding styles in Akka Actors and Java EE 7 Enterprise JavaBeans, specifically stateless session beans and JMS message-driven beans, Dr Gerald Loeffler concludes in a recent introductory talk when explaining and comparing the three approaches from a high-level concurrency view.
Version 2.1 of CQRS framework Axon supports annotations and ordering of event handlers, a new conflict resolution together with performance improvements. The recently released version also adds compatibility with OSGi.
Complex Event Processing, CEP, can be very useful for problems that have to do with time e.g. querying over historical data when you want to correlate things that have happened at different times, Greg Young explained in a recent presentation.
Vaughn Vernon, author of Implementing Domain-Driven Design, recently talked about using Scala and the Actor Model implementation Akka together with Doman-Driven Design as a means to remove some of the architecture overhead typically found in event-driven or hexagonal architectures.
This week, Pivotal released version 1.0 of its project Reactor for general availability. Reactor provides low-level abstractions for an event-driven, reactive programming model, and is a component member of the Spring IO Platform in its "IO Foundation" layer.
Russ Miles recently shared some thoughts and ideas about the needs for adaptability in a system and how his implementation of the Hexagonal Architecture can help in achieving this. He used a Java and Spring based application to exemplify how such a system can be implemented.
Version 2.0 of the Event Store, (an Event Source based persistence engine), was released last week with support for security, allowing for lock down of the Event Store and setting up Access Control Lists on event streams. The Projections library is now in beta and more documentation has been added.
Version 4.0 of NServiceBus, a service bus for .NET, has just been released with support for RabbitMQ and ActiveMQ in addition to MSMQ. Support for using database tables as queues has also been added, and performance for the MSMQ transport has been significantly improved. According to Udi Dahan, the founder of NServiceBus, this is the biggest release ever.
Not all systems are based on events or facts. In some problem spaces events make complete sense; they are about facts that are happening over periods of time. But a lot of systems are instead focused on information that flow through a process, Greg Young explained at DDD Exchange Day in London last week, using handling of a mortgage application inside a bank as an example.
Last week Yahoo! announced the open source release of Storm on Hadoop cluster. This implementation enables Storm applications to utilize the computational resources of a Hadoop cluster along with accessing Hadoop’ storage resources such as HBase and HDFS.
To take advantage of the great concurrency opportunities the new multi-core machines gives us we should use a programming model that helps us achieve this, and the Actor model gives us a number of tools for doing that, Vaughn Vernon stated at this year’s DDD Exchange Day in London.
Use events for interactions between small business components to bring simplicity to a system’s architecture, Russ Miles suggests in a recent presentation about simple event-driven components, as a follow-up on his talk a month earlier where he laid the architectural ground for his ideas about simplicity.
A new CQRS, Command Query Responsibility Separation, C# based Starter Kit to help developers get up and running with CQRS on .NET has been developed, not as a framework, but as a tutorial for developers interested in learning about CQRS, and as a possible starting ground for a CQRS based system.