Skip to main content

BMS Architecture

Once upon a time, in the cozy town of COG, there was a charming little restaurant called “BMS.” Imagine this: customers dining at tables practically next to the sizzling stove, with no clear division between the kitchen (back-end) and the dining area (front-end). The restaurant was run by Java, a talented chef who also took on the role of server. For years, everything seemed to work just fine, but there was a catch: if Java had a bad day with even one dish, the whole place would close. Need a fresh coat of paint? New chairs? You guessed it: shutters down!

To make things even trickier, Java was super picky about where and how to set up his restaurant. If he didn’t like the location or equipment available (hardware), he simply wouldn’t budge. Plus, he kept his secret recipes under lock and key, meaning no one else could lend a hand (no Docker containers). Renovations (adding more features)? Forget it! Even a simple expansion was impossible!

Then, one fateful day, a revolutionary idea came to light. Fancy little connectors, known as APIs, were introduced not only to help different parts of the restaurant communicate seamlessly but also allowed it to communicate with other restaurants. The kitchen (back-end) was separated and got a makeover with Laravel-PHP, while the dining room (front-end) was also rebuilt completely using Vue-JavaScript. Suddenly, chefs could focus solely on their delicious creations, while a dedicated team of servers managed orders and reservations like pros.

The entire operation became standardized, and training materials were now easily shared with new chefs and servers, making the business scalable. If there was an issue with a dish, the restaurant could stay open. Renovations? No problem! We could now make the restaurant work more efficiently in any way we chose. Everyone could focus on what they loved most and did best.

And so, in the newly thriving “BMS,” they all lived deliciously ever after!

Diagram 1: BMS Architecture

Diagram 2: Why do we need to separate the kitchen from the dining area and other parts?

image.png