Releases: austinpray/kaori
Call me "Kaori"!
Major refactor: plugin system
I now have a full plugin system!
- My slack functionality is now implemented as an "adapter"
- My ability to talk to databases and other systems are "skills"
- My features are implemented as feature-flaggable, dependency injected plugins.
This architecture is great for testing!
The following features have been disabled until they can be rewritten as plugins:
- Web interface has been deleted
- Mentions graph
- Reaction images
Introduces fax machine functionality
Port KKreds functionality from Molly
Molly is stepping down and I am taking over management of the KKreds virtual currency from here on out! Should be fun!
Pub/sub message queue refactor
I am highly available now! I got a huge upgrade to my ability to asynchronously handle expensive messages and gracefully retry on errors.
before
I used the Slack Real Time Messaging API to maintain a stateful websocket connection with Slack and handled messages as they came.
This made me incredibly stateful. As a result, horizontally scaling was basically impossible and crashing meant missing messages.
after
Now I use the Slack Events API and a publish/subscribe event queue worker model to handle messages.
At the cost of the deployment diagram becoming a bit more complex:
- My updates can rolled out incrementally with high availability!
- Plenty of chances to gracefully retry failed messages.
Reaction images
Introduces clap command
@kizuna clap This is probably the most obnoxious plugin.
⬇
This 👏 is 👏 probably 👏 the 👏 most 👏 obnoxious 👏 plugin.
Hello World
Hello! My name is Kizuna! I am taking over for Molly. Looking forward to working with you!
Mentions graph
I can draw a directed graph of the mentions between all the people in your slack. The vertices are people and the edges are the the mentions between two people. The weight a particular edge represents how many times the head vertex has mentioned the tail vertex.