SlideShare a Scribd company logo
GO IN HETEROGENEOUS
LANGUAGE
ENVIRONMENTS
Oleksandr Simonov
ABOUT ME
17 years in IT
Addict of Programming
Languages Polyglot
OpenSource contributor
HETEROGENEOUS
ENVIRONMENTS
USING HARDWARE AND
SYSTEM SOFTWARE FROM
DIFFERENT VENDORS
GO in Heterogeneous Language Environments
GO in Heterogeneous Language Environments
WHAT IS WRONG?
COMMUNICATION
COMMUNICATION
CHANNELS
• Database
• WebHook
• Pub/Sub
• RPC
GO in Heterogeneous Language Environments
DATABASE
• Easy to use
• Transactions
• Slow
• Hard to maintain
GO in Heterogeneous Language Environments
WEBHOOK
• Fast
• Flexible
• Secure
• Hard fallback logic
• Connection issues
• No retries
GO in Heterogeneous Language Environments
PUB/SUB
• Message Oriented
• Channel based
• No persistance
• Oriented on real-time
messages
GO in Heterogeneous Language Environments
RPC
• Many
Implementations
• Binary protocols
• Secure
• Need to wait on
response
• No persistance
GO in Heterogeneous Language Environments
ANY BETTER SOLUTION?
GO in Heterogeneous Language Environments
QUEUES SYSTEMS
• ActiveMQ
• RabbitMQ
• Faktory
• NSQ
GO in Heterogeneous Language Environments
HOW TO CHOOSE?
• Setup costs
• Support costs
• Implementation costs
• Hardware costs
• Benchmark
SETUP COSTS
• How much time required to run it locally?
• How must time to run in production?
• Multi-Nodes support?
SUPPORT COSTS
• How stable is it?
• How to catch errors?
• Fault-Tolerance?
IMPLEMENTATION COSTS
• Does API is easy to use?
• How clients documented?
• Supported platforms and languages?
HARDWARE COSTS
• Does it required a lot of resources?
• How it deal with big amount of requests?
• Data recovery? Backups?
BENCHMARK
• Run a stress testing with limited resources
• Run a stress testing with ultra power
resources
• 99% percentile of overload test
FAKTORY
• Sidekiq like behavior
• Easy to start
• Best option for simple interconnection
• Clients for most usable languages
FAKTORY
• Used in 3 projects which related to
marketing/advertising automation
• We have connected Ruby, Go, PHP in one
ecosystem
• Nice UI to check what is going
• ~1000 req/second
HAVE MORE REQUESTS?
• How fast you need to proceed them?
• How much resources you will have for them?
• MQ Server is ok for you?
• Can you say bye for other languages?
QUESTIONS?

More Related Content

What's hot (15)

PDF
NZIFF and Fastly
karlvr
 
PDF
Bio routing - DKNOG9
Annika Wickert
 
PDF
FFMUC goes wild - Infrastructure recap 2020 #rc3
Annika Wickert
 
PPTX
Nfc in wp8
Nico Vermeir
 
PPTX
Ansible E2E Testing
Roberto Perez-Rodriguez
 
PDF
Edge Of The Web
Justin Mclean
 
PPTX
Fiddler web testing tool
HimaniChauhan
 
PDF
Altitude San Francisco 2018: We Own Our Destiny
Fastly
 
PDF
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
Fastly
 
PPTX
Art of refactoring - Code Smells and Microservices Antipatterns
El Mahdi Benzekri
 
PDF
Flow monitoring explained - From packet capture to data analysis - the use of...
Annika Wickert
 
PDF
Zabbix over the Internet
Ricardo Santos
 
PPTX
Altitude San Francisco 2018: Preparing for Video Streaming Events at Scale
Fastly
 
PPTX
KazooCon 2014 - WebRTC
2600Hz
 
PPTX
Functional Programming in PHP
Aurimas Niekis
 
NZIFF and Fastly
karlvr
 
Bio routing - DKNOG9
Annika Wickert
 
FFMUC goes wild - Infrastructure recap 2020 #rc3
Annika Wickert
 
Nfc in wp8
Nico Vermeir
 
Ansible E2E Testing
Roberto Perez-Rodriguez
 
Edge Of The Web
Justin Mclean
 
Fiddler web testing tool
HimaniChauhan
 
Altitude San Francisco 2018: We Own Our Destiny
Fastly
 
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
Fastly
 
Art of refactoring - Code Smells and Microservices Antipatterns
El Mahdi Benzekri
 
Flow monitoring explained - From packet capture to data analysis - the use of...
Annika Wickert
 
Zabbix over the Internet
Ricardo Santos
 
Altitude San Francisco 2018: Preparing for Video Streaming Events at Scale
Fastly
 
KazooCon 2014 - WebRTC
2600Hz
 
Functional Programming in PHP
Aurimas Niekis
 

Similar to GO in Heterogeneous Language Environments (20)

PDF
Concurrent Ruby Application Servers
Lin Jen-Shin
 
PDF
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Benjamin Cabé
 
PPTX
Presention on Facebook in f Distributed systems
Ahmad Yar
 
PDF
Cs556 section1
farshad33
 
PDF
Dotnetfest forget about http
Irina Scurtu
 
PDF
Queueing at the Checkout
William Tracz
 
PPTX
.NET Fest 2019. Irina Scurtu. Forget about HTTP
NETFest
 
PDF
Adding Real-time Features to PHP Applications
Ronny López
 
PDF
Configuring was forenterprisemessaging
Lohit T
 
PDF
Zero to scaleable in ten minutes
Matt Walters
 
PDF
Rigadevdays - Communication in a microservice architecture
Irina Scurtu
 
PDF
Devit - forget about http requests
Irina Scurtu
 
PDF
Life in a Queue - Using Message Queue with django
Tareque Hossain
 
ODP
Art Of Message Queues
Mike Willbanks
 
PDF
MPI, Erlang and the web
Lenz Gschwendtner
 
PDF
PHP is the king, nodejs is the prince and Lua is the fool
Alessandro Cinelli (cirpo)
 
PDF
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
Ravi Yogesh
 
PDF
PHP is the King, nodejs the prince and python the fool
Alessandro Cinelli (cirpo)
 
PDF
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
Codemotion
 
PDF
Which messaging layer to use in a loosely coupled distributed app (no speaker...
Narahari (Hari) Allamraju
 
Concurrent Ruby Application Servers
Lin Jen-Shin
 
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Benjamin Cabé
 
Presention on Facebook in f Distributed systems
Ahmad Yar
 
Cs556 section1
farshad33
 
Dotnetfest forget about http
Irina Scurtu
 
Queueing at the Checkout
William Tracz
 
.NET Fest 2019. Irina Scurtu. Forget about HTTP
NETFest
 
Adding Real-time Features to PHP Applications
Ronny López
 
Configuring was forenterprisemessaging
Lohit T
 
Zero to scaleable in ten minutes
Matt Walters
 
Rigadevdays - Communication in a microservice architecture
Irina Scurtu
 
Devit - forget about http requests
Irina Scurtu
 
Life in a Queue - Using Message Queue with django
Tareque Hossain
 
Art Of Message Queues
Mike Willbanks
 
MPI, Erlang and the web
Lenz Gschwendtner
 
PHP is the king, nodejs is the prince and Lua is the fool
Alessandro Cinelli (cirpo)
 
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
Ravi Yogesh
 
PHP is the King, nodejs the prince and python the fool
Alessandro Cinelli (cirpo)
 
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
Codemotion
 
Which messaging layer to use in a loosely coupled distributed app (no speaker...
Narahari (Hari) Allamraju
 
Ad

More from Amoniac OÜ (15)

PDF
Dokku your own heroku 21
Amoniac OÜ
 
PDF
Cleaners of Caribbean
Amoniac OÜ
 
PPTX
Ruby JIT Compilation
Amoniac OÜ
 
PDF
Ambiguous Sinatra
Amoniac OÜ
 
PDF
Capistrano and SystemD
Amoniac OÜ
 
PPTX
Distributed Cluster in Ruby
Amoniac OÜ
 
PDF
Roda: Putting the Fun Back into Ruby Web Development
Amoniac OÜ
 
PDF
Rubymotion: Overview and Ecosystem
Amoniac OÜ
 
PDF
Rupher
Amoniac OÜ
 
PDF
Different Ways of Integrating React into Rails - Pros and Cons
Amoniac OÜ
 
PDF
Functional Web Apps with WebMachine Framework
Amoniac OÜ
 
PDF
Functional Ruby
Amoniac OÜ
 
PDF
How to Become a Сhef
Amoniac OÜ
 
PDF
Let's Count Bytes! Launching Ruby in 32K of RAM
Amoniac OÜ
 
PDF
Deployment tales
Amoniac OÜ
 
Dokku your own heroku 21
Amoniac OÜ
 
Cleaners of Caribbean
Amoniac OÜ
 
Ruby JIT Compilation
Amoniac OÜ
 
Ambiguous Sinatra
Amoniac OÜ
 
Capistrano and SystemD
Amoniac OÜ
 
Distributed Cluster in Ruby
Amoniac OÜ
 
Roda: Putting the Fun Back into Ruby Web Development
Amoniac OÜ
 
Rubymotion: Overview and Ecosystem
Amoniac OÜ
 
Rupher
Amoniac OÜ
 
Different Ways of Integrating React into Rails - Pros and Cons
Amoniac OÜ
 
Functional Web Apps with WebMachine Framework
Amoniac OÜ
 
Functional Ruby
Amoniac OÜ
 
How to Become a Сhef
Amoniac OÜ
 
Let's Count Bytes! Launching Ruby in 32K of RAM
Amoniac OÜ
 
Deployment tales
Amoniac OÜ
 
Ad

Recently uploaded (20)

PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 

GO in Heterogeneous Language Environments