Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Amebo is the simplest pubsub server to use, deploy, understand or maintain. It was built to enable communication between applications i.e. microservices or modules (if you are using monoliths) collectively called producers, and hopes to be able to serve as a small but capable and simpler alternative to Kafka, RabbitMQ, SQS/SNS.
Availability: Amebo runs on battle tested open source tools i.e. Redis, Postgres and provides the same level of availability guarantees
Reliability: Amebo has been used at scale by open source projects to handle 100's of millions of request
Latency: Amebo guarantees sub 100ms latencies at scale (barring network and hardware limitations)
Amebo has only 4 concepts (first class objects) to understand or master.
These can be microservices or modules (in a monolith) - that create and receive notifications about events. All applications must be registered on amebo ;-) before they can publish events.
This is something that can happen in an application i.e. creating a customer, deleting an order. They are registered on Amebo by their parent application, and all actions must provide a valid JSON Schema (can be empty "{}") that Amebo can use to validate action events before sending to subscribers.
An event is the occurence of an action and in practice is a HTTP request sent by an application to Amebo to signal it about the occurence of an action locally. Events can have a json payload that must match the JSON Schema of its parent action.
These are HTTP URLs (can be valid hostname for loopback interface on TCP/IP as well) endpoints registered by applications to receive action payloads.
This assumes you have installed Amebo on your machine. Amebo requires Python3.6+
# the easy path
pip install amebo
amebo --workers 2 --address 0.0.0.0:8701
# the hardway (manual installation) BUT not the only way... Sorry, I couldn't resist the pun ;-)
git clone https://github.com/tersoo/amebo
mv amebo /to/a/directory/of/your/choosing
export $PATH=$PATH:/to/a/directory/of/your/choosing/amebo # add amebo location to your path
ambeo -w 2 -a 0.0.0.0:8701
endpoint: /v1/producers
Schema | Example Payload | |
---|---|---|
|
|
endpoint: /v1/actions
Endpoint JSON Schema | Example Payload | |
---|---|---|
|
|
endpoint: /v1/events
Key | Description |
---|---|
action | Identifier name of the action. (As registered in the previous step.) |
deduper | Deduplication string. used to prevent the same event from being registered twice |
payload | JSON data (must confirm to the schema registerd with the action) |
Endpoint JSON Schema | Example Payload | |
---|---|---|
|
|
Other applications/modules within the same monolith can create handler endpoints that will be sent the payload with optional encryption if an encryption key was provided by the subscriber when registering for the event.
Amebo comes complete with a Schema Registry, ensuring actions conform to event schema, and makes it easy for developers to search for events by microservice with commensurate schema (i.e. what is required, what is optional) as opposed to meetings with team mates continually.
GUI for tracking events, actions, subscribers. Easy discovery of what events exist, what events failed and GUI retry for specific subscribers
Gossiping is HTTP native i.e. subscribers receive http requests automatically at pre-registered endpoints
Envelope format and transmission is web native and clearly outlined by schema registry
Topic management is simplified as actions with versioning support baked in
Infinite retries (stop after $MAX_RETRIES and $MAX_MINUTES coming soon)
The word amebo
is a West African (Nigerian origin - but used in Ghana, Benin, Cameroon etc.) slang used to describe anyone that never keeps what you tell them to themselves. A talkative, never mind their business individual (a chronic gossip).
FAQs
HTTP Event Notifications Server - Asynchronous Communication Engine
We found that amebo demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.