Amazon EventBridge: The biggest thing since AWS Lambda
trek10.com
trek10.com
I think i’m getting old... was telling coworkers that their fancy micro services existed 15 years ago in the form of EJB and service bus was a thing. And look, here it goes again
I think it was timing. Hardware and network were super slow back then.
https://bitbucket.org/pythagorasio/java-message-bus/src/mast...
Its also published on maven central. Io.pythagoras.messagebus
Disclosure: I’m the primary author.
- Datadog
- OneLogin
- Pagerduty
- Saviynt
- Segment
- SignalFx
- SugarCRM
- Symantec
- Whispir
- Zendesk
and of course that'll grow over time - anyone that produces events can become a partner.
Spring offered a competing set of libs with Spring Integration.
Those we mostly just libraries, though, so you have something running under them for distribution (like a message broker or service bus or, these days, a cloud managed service).
Actually Apache Camel doesn't really care if you have a message broker or not. You can set it up without one and still use half its functionality. (eg: connect a file arriving in a dropbox account to an outbound SMTP etc).
https://camel.apache.org/components.html
So it makes it super easy to, say, connect an inbound email to an ftp server so that all the messages get saved as files.
The cool new features are: (1) It allows serverless dynamic routing based on message content which auto-scales to match usage. (2) It supports SaaS partner events. (3) It supports publishing events based on a scheduled configuration, which can be used to trigger cron jobs or other system processes.
So it is just a messaging system, but one that might be more appropriate to certain use cases over using SQS or SNS or Kinesis, etc.
The article thinks that the ability to have SaaS partner publish events will be a huge deal and is a killer feature of EventBridge.
However, I suppose from an AWS cloud standpoint this great news :)
I would imagine this replaces a lot of SNS and SQS combo architectures in AWS?
https://en.wikipedia.org/wiki/Yahoo!_Pipes
But in all seriousness we've got half a dozen use cases for this just off the top of my head.
Their other big reveal was for new AWS CDK services allowing programmable config at scale in a few lines of code
https://aws.amazon.com/blogs/aws/aws-cloud-development-kit-c...
The AWS approach (and Azure) is clearly working. And the reality is that people want multiple approaches, especially enterprises, which are typically migrating applications to the cloud and can’t just rewrite everything for Google’s random proprietary platform.
Also, I’ll note that GCP is pretty aggressive about EOLing platforms. Good luck with that in the enterprise market.
That’s like saying AWS is low quality because you bought a fake widget off Amazon.com?
App Engine: https://cloud.google.com/appengine/docs/deprecations/
...
If you really want to build something and never touch it again, you need to go in prem. Good luck with being 5 years behind in security updates.
"There is no charge for events published by AWS services"
> EventBridge was formerly called Amazon CloudWatch Events. It includes new features that enable you to receive events from SaaS partners and your own applications. Existing CloudWatch Events users can access their existing default bus, rules, and events in the new EventBridge console and in the CloudWatch Events console. EventBridge uses the same CloudWatch Events API, so all of your existing CloudWatch Events API usage remains the same.
So EventBridge is CloudWatch Events. The difference is that now you can publish your own events and specify your own routing rules for them. As well as supporting 3rd party events from certain SaaS partners.
It is limited to 400 events per second, 5 targets per rule, and 100 rule per account. Consuming events is throttled at 750 per second. Events take about half a second to reach targets. Some of these limits can be increased by asking for higher limits. AWS published events, so existing CloudWatch Events don't count towards these and are unlimited.
What about SNS?
> Amazon SNS is recommended when you want to build an application that reacts to high throughput or low latency messages published by other applications or microservices (as Amazon SNS provides nearly unlimited throughput), or for applications that need very high fan-out (thousands or millions of endpoints)
> At launch, Amazon EventBridge is has limited throughput (see Service Limits) which can be increased upon request
> Amazon EventBridge is the only event-based service that integrates directly with third-party SaaS partners
> Amazon EventBridge uses a defined JSON-based structure for events, and allows you to create rules that are applied across the entire event body to select events to forward to a target
Also, the targets are not exactly same yet. For example, only SNS can publish to Mobile SMS, Email, or HTTP/S endpoints for now.
And SNS allows any type of payloads, while EventBridge forces you into JSON.
Finally, the reason this specifies serverless is because of the dynamic content based routing using configurable rules. This means you don't need to manage your own routing. So say you want to pair it with Lambda, you don't waste Lambdas starting then realizing the event isn't relevant for them, you can just setup rules for that. So it provides a serverless routing mechanism that auto-scales and is decoupled from producer and consumer. That's pretty cool!
Hope that helps!
But what is it?