Stream processing, Event sourcing, Reactive, CEP… and making sense of it all - Confluent. Some people call it stream processing.
Others call it Event Sourcing or CQRS. Some even call it Complex Event Processing. Sometimes, such self-important buzzwords are just smoke and mirrors, invented by companies who want to sell you stuff. But sometimes, they contain a kernel of wisdom which can really help us design better systems. In this talk, we will go in search of the wisdom behind the buzzwords. This is an edited transcript of a talk I gave at /dev/winter 2015. In this presentation, I’m going to discuss some of the ideas that people have about processing event streams. The problem when a technique becomes fashionable is that people start generating a lot of hype and buzzwords around it, often reinventing ideas that are already commonplace in a different field, but using different words to describe the same thing. Although the jargon can be off-putting when you first encounter it, there’s no need to be scared.
To start with, take something like Google Analytics. Several reasons: Microservices. "Microservices" - yet another new term on the crowded streets of software architecture.
Although our natural inclination is to pass such things by with a contemptuous glance, this bit of terminology describes a style of software systems that we are finding more and more appealing. We've seen many projects use this style in the last few years, and results so far have been positive, so much so that for many of our colleagues this is becoming the default style for building enterprise applications. Sadly, however, there's not much information that outlines what the microservice style is and how to do it. In short, the microservice architectural style  is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.
These services are built around business capabilities and independently deployable by fully automated deployment machinery. Componentization via Services. How To Control User Identity Within Microservices. Everyone’s excited about microservices, but actual implementation is sparse.
Perhaps the reason is that people are unclear on how these services talk to one another; especially tricky is properly maintaining identity and access management throughout a sea of independent services. Unlike a traditional monolithic structure that may have a single security portal, microservices pose many problems. Should each service have it’s own independent security firewall? How should identity be distributed between microservices and throughout my entire system? What is the most efficient method for the exchange of user data? There are smart techniques that leverage common technologies to not only authorize but perform delegation across your entire system. What Are Microservices, Again? Microservice Architecture For those readers not well-versed in the web discussion trends of late, the microservice design approach is a way to architect web service suites into independent specialized components.
Excited about a '2.0' tech stack for microservices – Software Blog. Technology moves fast!
At the same time, the old becomes new. When we talk about microservices architectures, we’ve come to realize that the organization and communication structures of your teams greatly influence the design of your technology systems. When we actually start implementing these architectures, we find that we’re knee deep in distributed systems. We also find that lots of technology and lots of the methodologies of yesterday and the day before have greatly contributed to this evolution in which we’ve found ourselves. In many ways, we may be at the beginning of a yet new evolutionary cycle with Lambda/Function as a service style applications, but I don’t want to distract too much here. What I’ve observed recently is that we’re finding new ways to iterate and improve on what we called microservices just a few years ago. I may have missed some – feel free to reach out (@christianposta) anytime if you think I’ve missed something glaring there.
Why a pattern language for microservices? Back in 1986, Fred Brooks, author of The Mythical Man-Month, said that in software engineering, there are no silver bullets.
In other words, there are no techniques or technologies that if you adopted would give you a 10X boost in productivity. Yet 30 years later, developers are still arguing passionately about their favorite silver bullets, absolutely convinced that their favorite technology will give them a massive boost in productivity. A lot of arguments follow the Suck/Rock dichotomy, which is a term coined by Neil Ford. Microservices architecture.