Sha256: b3dae72e398757197b7b343f902ac8f4f769402e4c203f30fcf94a05cfe76cc2

Contents?: true

Size: 1.79 KB

Versions: 1

Compression:

Stored size: 1.79 KB

Contents

# Stenotype TODO list

 - [x] Figure out how to pass context to data publisher. **Context is passed explicitly**
 - [x] Switch from synchronous to asynchronous message publishing. **A config option for this is available**
 - [x] Figure out how to unwind from using a specific framework (e.g Rails), but rather implement events in a general way suitable for plain ruby classes. **Event emitters inject in dynamic way based on what framework the gem is being used in.**
 - [x] Infer data in extensible way. Given a common context implement context handlers capable of fetching data for specific cases (Controller, ActiveJobs, Models, etc.). **Context handlers are introduced. New handlers might be implemented and registered easily**
 - [x] Figure out the most common default context handlers (Controller, something else). **Controller, ActiveJob and Plain ruby classes are the case now**
 - [x] Develop an extensible schema for formatting the messages. **A serializer is introduced**
 - [x] Cover the existing code with specs. **Coverage increased to 100%**
 - [ ] Consider using batch publishing in case the load is high (how do we measure this, perhaps rpm?)
 - [ ] Consider using JSON schema to validate the input for publisher
 - [ ] Consider enabling an option to publish to multiple topics. Do we need to publish to multiple topics?
 - [ ] Consider adding state to message dispatcher and instantiate it on every event
 - [ ] Consider using `::ActiveJob::Base.around_perform` or `::ActiveJob::Base.around_enqueue` in case we need to track all jobs.
 - [ ] Figure out the params for plain ruby class context handler.
 - [ ] Consider `ContextHandlers::ActiveJob` params. How to deal with \_args? It won't necessarily respond to `#as_json`.
 - [ ] Consider a way to switch from evaluating ruby code to using plain modules extension.

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stenotype-0.1.0 TODO.md