San, I hope you know I meant no offense. This is a strange issue to have
and is normally indicative of an architectural design flaw and without
having more details that might violate your nda, we can only go based on
facts entered into evidence, to borrow a phase from legal.

An application can be internally perfect, with a flawless deployment, but
the external communication/network aspect is the gotcha.

Unfortunately, I am not familiar with any way build right into rails to do
this outside of backgrounding and/or micro-servicing the process that
invokes the external. Generally, that is how one prevents the application
from locking when dealing with things that are outside ones control. The
major reason for this is that runners like puma/unicorn/insert yours here
want to be agnostic themselves. If you have the ability to do it from a dev
ops perspective, then that would likely be the best option for it if you
can not isolate it out some other way.


On Thu, Aug 8, 2019 at 2:31 PM San Ji <sarun...@gmail.com> wrote:

> Architecture wise the application is way better than average Rails apps
> IMO.
> The dependency direction is one way internally, with no cyclic dependency.
> (even with the ActiveRecord class, that in almost all other Rails app
> contains cyclic dependency between models)
> Network perspective may suggest otherwise, but the business logic is truly
> not relying on any external service, completely agnostic to user
> interfaces, data storage, and external network traffics.
> The unit tests run blazingly fast because they are genuinely
> side-effect-free, including side-effects from the database. (No mocking, no
> database cleaner, no factory bot/fabrication gem, no-nonsense)
>
> The application is not a legacy one, and I can vouch for it that there is
> no problem with the software architecture.
> It is the business that creates a weird flow of traffic, and the reasons
> are legit. (It is weird in a sense that it is quite unusual for Rails app,
> but not in a bad sense.)
>
> This is an enterprise world. And I am in the process of open-sourcing the
> tool I use to manage all the complexity.
> If you are interested, you peek into the architecture of this application
> with gem "midnight-rails" (used as the main backbone of this application),
> the source code is now available but currently no documentation.
>
> The problem I have can be solved at the expense of DevOps operation, I
> wonder if there is the other way around using just the ruby code.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rubyonrails-talk+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rubyonrails-talk/bdc5b160-efbe-4bba-9bc0-f3e889ed082d%40googlegroups.com
> <https://groups.google.com/d/msgid/rubyonrails-talk/bdc5b160-efbe-4bba-9bc0-f3e889ed082d%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CAOMcp-AMbcxi8mfc2Fn1ChzntYQWiGGK%2BCJLp_FL6%2BUCG%2BXbXQ%40mail.gmail.com.

Reply via email to