caseflow
Light Service
caseflow | Light Service | |
---|---|---|
3 | 5 | |
49 | 812 | |
- | - | |
10.0 | 0.6 | |
1 day ago | 5 months ago | |
Ruby | Ruby | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
caseflow
- Backlog at BVA and mass hiring for virtual lawyers
-
The most important part of modern government is database management.
Most of the paperwork filed are shipped, scanned, and processed into digitized forms into a system of record known as Veterans Benefit Management System (VBMS) here at the VA. VA Regional Office staffers can then pull the digital records for further processing.
I supported the VBMS team's effort in migrating to a cloud based environment in 2017/2018 and my team help start the Caseflow/Appeals project, a system used to track appeals cases - which relies on VBMS daily. Caseflow is open source as well.
https://github.com/department-of-veterans-affairs/caseflow
-
The US Digital Services Playbook
These plays can work. Why? Because USDS employees are government employees with escalation paths all the way up to the very top which gives them a lot of power to break down bureaucratic barriers to modern software development that government contractors & consultants would have no chance of doing. They then can bring in contractors to work in the relatively modern shell that they've created.
For example, here's a project started by the USDS in 2015. It's responsible for managing the complex bureaucratic process of VA legal appeals. (https://github.com/department-of-veterans-affairs/caseflow) It's open source, continuously integrated and deployed with close to 100% test coverage, deployed on an AWS GovCloud VPC, and was built on a fraction of the budget of similar systems.
Active development on this system is now done primarily by contractors now that the relevant bureaucratic barriers were removed.
How do we scale this story? More talented people with the desire to serve their country.
Light Service
-
The Decree Design Pattern (Ruby on Rails)
check out the `light-service` gem - it lets you create services that use this pattern and compose them into complex flows: https://github.com/adomokos/light-service
-
How to avoid if/else with different ramifications
Similar to the above recommendations of Railway Orientated Programming and the Interactor gem, I use the Light Service gem. While it can sometimes be a bit verbose it excels in code reuse, testability, and composition.
-
Utilizando o padrão interactor no Ruby on Rails
View on GitHub
-
Ten Ruby gems for Rails you should definitely know about
LightService
-
The Ruby Unbundled Series: Services vs. Objects - The Battle for Decomposition and Reuse
You can implement the service pattern as a PORO, but it helps to use one of the gems available to aid in code structure, orchestration, and error handling. The LightService gem provides a nice implementation without adding hardly any overhead. It’s design is very simple, as shown in the diagram below. An organizer is used to define the sequential workflow, which is made up of one or more actions. An error in any of the actions will short-circuit the entire workflow.
What are some alternatives?
playbook - The Digital Services Playbook
Interactor - Interactor provides a common interface for performing complex user interactions.
git_reflow - Reflow automatically creates pull requests, ensures the code review is approved, and squash merges finished branches to master with a great commit message template.
wisper - A micro library providing Ruby objects with Publish-Subscribe capabilities
ActiveWorkflow - Polyglot workflows without leaving the comfort of your technology stack.
Rectify - Build maintainable Rails apps
Trailblazer - The advanced business logic framework for Ruby.
ActiveInteraction - :briefcase: Manage application specific business logic.
Mutations - Compose your business logic into commands that sanitize and validate input.
u-service - Represent use cases in a simple and powerful way while writing modular, expressive and sequentially logical code.
dry-types - Flexible type system for Ruby with coercions and constraints
Setsy - Settings for classes backed by a database with defaults.