Streaming Technology as Event-Driven Infrastructure When Done Precisely
Streaming APIs have an image problem. Because of the dominance of Websockets when it comes to delivering real-time APIs, many people have a view of streaming APIs as being all about high volume data flows and not something that is precise or event-driven. Because of the popularity of streaming APIs like the Twitter firehose, and financial or news APIs delivered via on or off Websocket streams, people associate what we do with a pretty narrow view of the data landscape. This is something we are working to correct, as we position streaming technology as more of an event-driven approach when done precisely.
First, Streamdata.io uses Server-Sent Events (SSE) to deliver our streams. It is a one-way streaming standard that uses HTTP, where Websockets is a two-way streaming standard using TCP. The technology we use is more precise and reflects the world of web APIs more than WebSockets does. Next, we use JSON PATCH to deliver incremental updates to our consumers, pushing updates whenever something has changed with a feed. By default, we aren’t just about turning on and off streams, we are about establishing sustained connections with existing web APIs, and getting streams of data pushed whenever something changes. The streaming is just one variable in an event-driven equation. Nothing is streamed unless an event occurs, which depends on how broad or precise you define the query you are sending to an API being proxied by Streamdata.io. https://goo.gl/hFsZsj #DataIntegration #ML
Exception Handling in Spring Boot WebFlux Reactive REST Web Services
#ICYMI: This is a continuation of our series on exception handling and validation in Spring Boot REST APIs. In earlier posts, we discussed a robust pattern for exception handling and validation in Spring Boot and MVC REST Web Services. Please go through that first if you have not already. To summarize, we recommended coding an ErrorComposer to compose errors from exception objects, which could be used in a controller advice as well as a custom error controller. The controller advice would catch exceptions bubbling up from your controllers, whereas the error controller would be the ultimate weapon for handling exceptions raised at all levels, e.g. in filters.
However, in WebFlux, Spring Boot provides a WebExceptionHandler filter instead of the error controller. So, instead of providing your custom error controller and error attributes, you would need to provide a custom WebExceptionHandler and/or ErrorAttributes. For more details, refer to Spring Boot documentation. https://goo.gl/iioBYR #DataIntegration #ML

