Polyglot Programming in Cloud Architecture
Key Points
- Polyglot programming means using multiple programming languages and technologies in a single system to play to each tool’s core strengths.
- In cloud‑native architectures, separating concerns (frontend, backend, middleware) makes it practical to choose the most appropriate language or platform for each component.
- Leveraging the right stack—e.g., Node.js with Express for APIs and a MySQL database for relational data—simplifies development while still allowing expansion.
- Adding new capabilities, such as mobile support or unstructured data, often leads to integrating additional technologies like NoSQL databases alongside the existing SQL system of record.
- This multi‑language, multi‑platform approach improves scalability, flexibility, and maintainability as applications evolve and migrate to cloud environments.
Full Transcript
# Polyglot Programming in Cloud Architecture **Source:** [https://www.youtube.com/watch?v=WzGRBUS9Ars](https://www.youtube.com/watch?v=WzGRBUS9Ars) **Duration:** 00:07:17 ## Summary - Polyglot programming means using multiple programming languages and technologies in a single system to play to each tool’s core strengths. - In cloud‑native architectures, separating concerns (frontend, backend, middleware) makes it practical to choose the most appropriate language or platform for each component. - Leveraging the right stack—e.g., Node.js with Express for APIs and a MySQL database for relational data—simplifies development while still allowing expansion. - Adding new capabilities, such as mobile support or unstructured data, often leads to integrating additional technologies like NoSQL databases alongside the existing SQL system of record. - This multi‑language, multi‑platform approach improves scalability, flexibility, and maintainability as applications evolve and migrate to cloud environments. ## Sections - [00:00:00](https://www.youtube.com/watch?v=WzGRBUS9Ars&t=0s) **Polyglot Programming in Cloud Architecture** - The speaker explains how leveraging multiple programming languages and platforms such as Windows, Linux, and Kubernetes shapes modern cloud‑native architectural decisions, coining the term “polyglot programming.” ## Full Transcript
Ola Chia
maganda now just by listening to me
speaking multiple languages I would
technically qualify as a polyglot and if
you look at the textbook definition of
that it says as such someone who can
speak multiple languages and you can
even go to the extent of a
hyperpolyglot being able to juggle 10 or
11 or more languages which is very
impressive by the way now for the
purpose of this video we're going to be
focusing on a concept called polygot
programming now in your architectures
when you're designing your applications
you have to kind of make a a bunch of
architectural decisions on what kind of
programing language you're going to do
uh how you going to connect the pieces
of your architecture together now this
concept really is very applicable As you
move into a lot of cloud native
architectures where things are separated
and denormalized so what I want to cover
to today is two concepts that really go
through these particular things as to
why you need to really consider about
bringing this out into your
architectures now the first is let's say
you're in your
actual organization or your server
room or your data
center it could be as simple as having
different types of os's available for
you to use that can be with Windows or
Linux
or even
kubernetes being able to allow these to
be platforms that you can actually
leverage to publish applications too but
let's take it a step deeper most
architectures that I like to say when
you migrate on to the uh Cloud native
you're going to have front end which our
abbreviate s Fe you'll have
backend and you'll have some type of
middleware that's usually going to be
connecting the two
together or they can kind of go from
either
or front end to back end you know they
can kind of Criss-Cross and go from
there so one of the use cases that I can
say is you want to what polyot
programming allows you to do is to
leverage particular types of programming
particular types of Technology patterns
for their core competency of what they
can offer now what with the default
thing to do I am a big node.js fan so
for me if I were to start up let's say
having a front-end web
application and a microservice is going
to talk to my MySQL
DB I may also leverage Express to also
uh function as an API that I can call
that talks to my database and this can
be the web front end now naturally I
could say yes that would be great I can
use node.js for all these pieces both
those services and just talk to my SQL
as my architecture expanded let's say I
wanted to add in
mobile now when I want to communicate
with this I could still leverage a mySQL
database or I could go ahead and add a
database now if you remember from
some of the previous videos that's the
difference between traditional SQL and
no SQL all right that's being able to
provide B on documents to store and I
could still leverage my SEL to still be
my system of record there that I can use
more whereare housing um of my data now
if I wanted to kind of uh break this up
I could go very micro let's say I wanted
to eventually upgrade this uh to a spa
application with a framework like
angular or react I could still leverage
Express to serve out that those static
files or I could use a different
language for instance I could use go
to provide the shell for serving out the
static files for My Spa application why
because goang is very excellent in this
particular use case for a startup time
and being able to serve out responses
very very quickly um and that's all
judging by comparing the two on what the
context is now I still may want to leave
Express for the backend because I can
leverage other arm Technologies like
Prisma that will allow me an easy
interface to connect to my SQL and and
and kind of facilitate that layer there
as well so one one example you can get
is getting very granular into the type
of decisions you can make really sitting
back and analyze and when I start a new
project building a platform like this
this is some decisions that I would like
to make you know uh from there and it
allows me as well to leverage other
patterns here if I wanted to
inject uh cough cut in
the in here as well where I could run my
data directly into Kafka and then into
my database again uh now we're at the
point where you can really have a lot of
fun with the architecture that you want
to kind of use now let's take the from
another level here that's being very
micro into the particular Weeds on
individual decisions you want to make
but let's say if I want to do the same
project I may step back and say you know
let me Analyze This a little more for
that same project I may say I know I'm
going to have
web I know I want to do
mobile um I know I want to have a a
databases okay now one way I could
probably make that decision to say I'm
going to have other microservices to
connect to my database but I want to
take this decision here it may be as
simple as a decision to say I want to
settle on on a technology that I do want
to use so just because you're into
polyot programming doesn't mean you
always are mandated to choose different
types of technology for different pieces
all right I can leverage the same piece
for this because I know that by
leveraging
react it has facilities to give me the
spa that type of customer experience
that I want the responsiveness as well
as has with react native I have the same
cap ability to be able to build
crossplatform applications for IOS and
Android so two different sides of the
spectrum um which I think is very useful
in in in kind of working as you now want
to build your applications so I I wanted
to do this video to really say before
you do your next project take a look at
polygot programming whether it's the
macro decisions you can make about what
technologies to use or even the micro
decisions this should definitely be
something that you take a look at and
put into
practice