monorail (n., jargon) - A Big Ball of Mud codebase that began as a web application (esp. one written in a dynamic language) but grew into other responsibilities beyond serving HTTP traffic to users. A monorail is created when a webapp does not have its responsibilities moved to other services as the demands of the product grow (e.g. offline processing, managing complex data storage, user authentication). Coined by Jean-Paul Cozzatti in 2010, “monorail” is a portmanteau of the words “monolithic” and “Ruby on Rails”.
While it’s difficult to determine the exact point that a webapp becomes a “monorail”, a webapp is certainly a monorail when it begins to write to and read from a distributed queue.
“Don’t put that in the monorail.”
“It’ll save us weeks of developer time if we do it in the monorail.”
“Nobody owned anything in the monorail because everyone’s code touched everyone else’s.”