Ruby on Rails

Summarized using AI

Evolution of real-time, AnyCable Pro and... me

Irina Nazarova • October 07, 2024 • Boulder, CO

In her talk at Rocky Mountain Ruby 2024, Irina Nazarova discusses the evolution of AnyCable Pro, a solution developed by Evil Martians to simplify real-time functionality for Rails developers while promoting commercial success. The journey began in 2021, focusing initially on performance but swiftly addressing the need for reliable WebSocket connections and enhancing developer productivity. Irina reflects on how user priorities evolved from GraphQL to Hotwire, integrating real-time features into applications, and the expected demands for reliable real-time communication.

Key points discussed include:

  • Overview of Real-Time Technologies: Understanding how web sockets operate in a persistent two-way connection, contrasted with traditional HTTP requests, and the introduction of technologies like AnyCable following the rise of web sockets in 2015.
  • AnyCable Development Journey: The inception of AnyCable as an alternative to Action Cable, aiming for improved performance and scalability, and the initial challenges faced with WebSocket reliability.
  • Real-World Applications: Specific case studies from companies like Tito, which transitioned to virtual events during the pandemic and sought AnyCable’s robust capabilities for handling real-time updates and messaging.
  • Customer Engagement and Feedback: The significance of maintaining strong relationships with customers, particularly those using the Pro version, leading to valuable insights and further product development.
  • Managed AnyCable Introduction: The launch of Managed AnyCable, designed to simplify infrastructure and enhance reliability while providing zero-downtime reconnect features.
  • Feedback and Future Directions: Acknowledgement of the ongoing need for better front-end integration and problem-solving in real-time applications, with plans for future enhancements and community engagement.
  • Personal Journey and Community Support: Irina shares her personal growth within Evil Martians and the supportive role of the Ruby community throughout her journey.

In conclusion, the session emphasizes the ongoing evolution and capability of AnyCable as a reliable framework for real-time applications in the Rails ecosystem. It highlights both the challenges and successes encountered, showcasing the importance of user feedback and continuous development in tech products. The importance of community collaboration and support is also reiterated, underlining how essential it is for innovation in technology, especially in real-time communications.

Evolution of real-time, AnyCable Pro and... me
Irina Nazarova • October 07, 2024 • Boulder, CO

When we launched AnyCable Pro at Evil Martians in 2021, our goal was to simplify real-time functionality for all Rails developers while making it commercially successful for our company. We aimed to build what people wanted and saw their priorities shift from GraphQL to Hotwire, from chats to collaboration, and to AI-powered voice apps. Initially focused on performance, we soon tackled WebSocket reliability and developer productivity, culminating in the launch of Managed AnyCable earlier this year. Our journey, fueled by consulting revenue, is not without valuable insights. Let’s reflect on our story, share our learnings, and glimpse into the future of AnyCable and real-time applications.

Rocky Mountain Ruby 2024

00:00:13.519 yeah so Marco is making uh developer tooling feel easy let me let me see if I
00:00:21.680 can continue on the same note I'm not sure um yeah thank uh everyone please uh
00:00:29.000 come say hi uh after the talk if you haven't yet uh but first I want to give a shout
00:00:35.600 out to my colleagues fat who is supposed to be here today and could make it uh because of some visas documents and he
00:00:43.120 was really hoping to be here and I hope he can make it next year so yeah and um
00:00:49.719 you'll have a chance to meet him um but um it's a nice weather uh
00:00:56.879 folks um I'm kind of surprised uh pleasantly surprised about this
00:01:03.000 weather for October but uh I had a different feeling back in San Francisco
00:01:08.840 where I'm now based uh the same weather there uh feels very very
00:01:16.360 strange to be honest I went to the beach and the sand was warm it's not supposed to be warm at
00:01:24.000 all um uh but you know I just checked it's going to be it's going to be back to normal tomorrow
00:01:31.560 so back to 60 70 but uh folks before we begin let's do
00:01:37.040 this um I hope it works I'm not sure um
00:01:42.119 so there's this uh cure code if you can try using it and think
00:01:47.360 about this logo if you recognize it but don't don't don't don't uh enter
00:01:53.119 anything yet so just open the page fill out the option and don't send it yet I
00:01:59.399 hope it works let me I don't know uh so we're using so this is the logo again
00:02:05.560 we're trying to guess what it means we're using this website po everyware uh
00:02:10.759 it's a very old y combinator company uh built with
00:02:17.760 rails and powered by something called any cable uh that we're going to be talking
00:02:24.239 about today so let's see all right so now you can
00:02:29.959 send your respons to nice hash rocket
00:02:37.360 wow um so what's going on here we're all connecting to
00:02:42.519 a some server um any cable server right now yeah it's interesting so there's no
00:02:49.239 right oh there is a right right answer I can
00:02:55.000 see um all right
00:03:00.519 okay that's fun Transformers Transformers by the way it it has something right it's like some
00:03:08.560 robots um all right what do you think the right answer
00:03:14.720 is um yeah I I asked my Twitter and very few people guessed right this is the
00:03:20.840 logo of web circuits yeah that's that's web
00:03:26.519 sucket uh so web sucket is uh the main difference between web sockets and HTTP
00:03:32.000 is just that there's request response and then the connection stays open it's
00:03:37.319 not closed and yes connection can be uh kind of shut down on either side of this
00:03:43.560 socket two-way socket but essentially it stays open it stays kind of waiting for
00:03:49.439 what's more yeah what's more uh is you know you you guys have to share and
00:03:56.280 that's why web sockets are perfect for real time because you get updates you get messages
00:04:02.519 as soon as they are uh as soon as you can as soon as they're sent uh and web
00:04:09.360 circuits were introduced in 2011 and if we look at the kind of evolution of
00:04:14.560 different real time tools uh we see something like a Cambrian explosion
00:04:20.400 after web ciruits were introduced and there's a bunch of stuff here and uh
00:04:26.360 we're going to talk about um a few a few of those basically this one and
00:04:34.080 this is um this is a kind of cool story to share for me because it's uh something that
00:04:42.320 I've been going through right this was a big part of my life the last few years uh and our like Journey with Vladimir
00:04:51.639 demen W demen so we met at evil Martian back in
00:04:57.199 2017 he was a vant engineer I joined as a account manager and today he's the head of
00:05:04.880 backend I'm the CEO and I hope you uh
00:05:10.440 know something about the company uh maybe you've used some of our open source uh let let me know if she if you
00:05:18.319 did um some some hands yeah oh nice nice
00:05:23.520 nice all right um thanks thanks guys um so we have yeah we're building a lot of
00:05:28.880 uh a lot of open source and our mission is to support uh startups growing companies building with rails um not
00:05:36.600 just rails but uh this is our big focus and uh yeah if you have problems uh hard
00:05:43.560 problems that we we'd love to solve them help you solve
00:05:48.600 them so this story actually begins in 2015 when ra introduced um kind of first
00:05:55.720 party support for web sockets um as you all know it's called action cable and it was one of the first
00:06:03.319 uh Frameworks that introduced this of course Phoenix was probably the first
00:06:08.720 but this is a kind of realtime first framework and now you could ra said look
00:06:15.280 build realtime features with rails the problem was in 2015 Ruby was kind of not the
00:06:24.599 best that yeah uh well and it was not not Nob
00:06:30.080 brainer W introduced U basically the same thing written in go uh it's any
00:06:37.759 cable originally was um kind of very very similar to action cable but written in
00:06:43.400 go and uh any cable used of course the same protocol was a drop- in replacement
00:06:48.639 was open source MIT licensed and uh also used
00:06:54.319 radus um don't pay too much attention to this it's maybe a little bit too
00:07:00.240 compated just remember this when you running um originally the story was
00:07:06.440 you're running rails application and then you run three additional components
00:07:11.479 redis usually you had redis anyways with rails uh but you also run web circuit uh
00:07:17.919 server go goang server and then you also run something called ra rails in our PC
00:07:24.360 mode let's say so this was a special instance of rails used by any key
00:07:31.440 um so it was a bit complicated but it had 10 times less memory
00:07:37.000 usage and it was much more uh truly real time at scale so when you had like a few
00:07:44.560 thousand connections action cable was already not performing like on subse um
00:07:51.479 uh latency and any cable kept you know subsequent
00:07:56.879 latency it AG pry well yeah kind of action Cable says build realtime
00:08:01.960 features chats notifications all this stuff with um with you inside your own
00:08:08.039 framework and any cable said well and scale them right but something was missing
00:08:14.800 apparently uh apparently Co was missing uh for some reason because what
00:08:21.159 happened is uh after the pandemic it's just an illustration but this company
00:08:26.520 Tito that many of you know because many Tech Conference uh send tickets through Tita it's a
00:08:33.719 including this one so uh Tia is a rails company very respected application of
00:08:40.839 course when the pandemic started and all the well offline events were
00:08:46.440 cancelled they had to think of kind of something else and they invented a
00:08:51.880 virtual events platform veto uh t v and uh V was a
00:09:00.920 basically a EV events platform that was that had a video stream but then a bunch
00:09:07.600 of real time updates realtime content updates notifications and chat so this was all real time and was originally
00:09:14.240 using action cable and of course they had to scale it they reached out for
00:09:19.560 help setting up any cable and this is what we've saw happening with many many
00:09:25.800 other tools that reached for collaboration in uh kind of digital products during
00:09:33.560 pandemic I'm sorry um and yeah so what we were doing we were kind of collecting feedback on
00:09:40.480 GitHub we were Consulting u a bunch of different very different uh companies
00:09:47.480 reached out for Consulting around any cable uh idees uh virtual events platform kind of
00:09:55.120 GPS navigation product uh and you add Tech an add tech
00:10:00.920 product different different things and finally well this is why we saw okay
00:10:07.360 there's demand for any cable and we we released version 1.0 we also learned something about uh
00:10:14.360 scaling web sockets which we kind of didn't originally uh expect to learn we
00:10:20.720 didn't know about that uh how many of you recognize the picture on the
00:10:26.959 right okay okay um don't tell anybody uh let's pretend
00:10:33.680 we don't right um well it's a metaphor um that I'm I'm
00:10:41.399 using to describe this this situation you remember uh when you had a phone line and you
00:10:48.240 had uh like you you're making like normal short normal phone call it's like
00:10:53.720 an HTTP request it's like you call you get your information you hang up right but uh when we have a Diop modem that
00:11:03.160 enabled Us in the early days to connect to the internet um we wanted to be using
00:11:09.920 this line for hours and this is what the kind of persistent connection through
00:11:15.440 websocket feels like to the server so imagine your phone is your server and basically what's what ends up happening
00:11:21.760 is that websockets kind of uh consume all the resources and nothing is left
00:11:28.000 for http and we we saw this on happening um for our clients and um basically the
00:11:38.240 the conclusion was yes there there has to be a uh web circuit requests need to be
00:11:44.480 requests need to be serviced and scaled independently from HTP requests this is
00:11:50.160 the uh turned out to be a a benefit of
00:11:55.240 the architecture where any cable stands uh independent and kind of can scale independently of rails um and yeah I
00:12:02.880 remember I still remember the day when we got fiber uh yeah people people could finally
00:12:09.000 reach us uh at home on our phone um so that's um that's what we learned we also
00:12:16.199 learned that uh a bunch of tooling was missing we we were we built a kind of load testing tooling for web sockets and
00:12:24.079 U uh scenar based testing uh we learned that people wanted uh integration with
00:12:31.360 Apollo graph K subscriptions uh uh fullbacks
00:12:37.600 for it's actually fullbacks through wo and this is needed for private networks that is still kind of uh not friendly to
00:12:46.399 web suckets I didn't know it exists but yeah
00:12:52.079 and and then uh kind of some voice apps so we decided we decided that it looks
00:12:58.639 like we can build a a real product here and we were passionate about building an
00:13:04.279 open source but we also wanted to kind of make it sustainable keep it sustainable and we decided we're going
00:13:11.800 to build we're going to have two versions um one is open source MIT and
00:13:18.920 the other is commercial and uh paid so the one uh on the left is
00:13:28.120 a a communal Garden this is how we sort of um think about open
00:13:34.360 source uh it's available to everybody everybody is welcome to contribute
00:13:39.560 everybody is welcome to use it however they like but then if a company wants uh
00:13:46.040 to use the a big company wants to use this product they essentially want to have a professional Farm which is a bit
00:13:53.240 different something else so this is how we think about um our pro version and
00:13:58.320 cable Pro um it's uh it the the en enable pro has
00:14:05.399 only the features that are only needed by Enterprises so it's stuff in cluster
00:14:12.639 mode stuff related to uh those private networks um and some developer to as
00:14:20.639 well so we launched uh anable Pro in 2021 it had even more memory uh
00:14:28.240 efficiency binary compression algorithms uh apolog graphical uh integration and but we kept
00:14:36.519 very very simple uh we didn't almost build any kind of automation around the
00:14:44.000 product so we didn't have a licensed server we didn't have uh any to be
00:14:49.800 honest like we didn't build an app to sell it uh we we still use GitHub
00:14:55.000 container registry to distribute uh the pro uh we had a flat priz and just used
00:15:02.079 type form for signups that's it uh and again this is still just two people uh
00:15:10.040 having full-time jobs at evil Marsh as a head of v and CEO so kind of
00:15:16.079 a little bit busy so cellu was our first customer it's a French company they do
00:15:23.800 support uh through different uh uh like
00:15:29.519 inboxes like WhatsApp Messenger Telegram and they wanted really instant chat
00:15:36.560 experience and um uh how can you explain like when rails world the first
00:15:44.160 conference you remember it was sold out uh I I I got an extra ticket I gave it
00:15:49.240 to the CTO of cell that's how much I love
00:15:54.880 them yeah um so and by the this was our experience with many paying customers it
00:16:03.639 was just pure love appreciation support feedback I don't know why of course it's
00:16:09.959 like supposed to be an open source but uh I think people who used Pro our pro
00:16:16.399 version valued it maybe even more than people who used open source and they the
00:16:22.199 types of relationship we had with them we have with them are just some reason deeper and more profound
00:16:30.000 often so uh the we release the prsion then we release the client library and
00:16:36.759 we built something for hot wire because hot wire was out and we wanted something
00:16:42.040 extra for for hot wire and we realized if people only use hot wire um there's
00:16:48.600 no need for RPC we can just use uh kind of JW tokens for um owls
00:16:57.120 and basically simply the architecture a lot and this is what we did for uh Hotwire so just two components
00:17:04.839 are left uh spoiler it's now available for non non
00:17:10.520 Hotwire cases as well so the year ended we had six pain
00:17:17.360 customers not too many uh and we also got some Consulting
00:17:22.480 Revenue but it didn't feel it didn't feel like a blast you know it didn't
00:17:28.240 feel like a huge win and we decided next year we don't we didn't really have you
00:17:35.360 know an opportunity to focus on the product too much but we did some marketing so Vol recorded a bunch of uh
00:17:42.559 screencasts we started a newsletter um by the way you can sign up for on our blog um it's a pretty cool
00:17:51.080 newsletter about real time and also uh he was doing this talk at uh RC and
00:17:59.280 what turns out is oh thanks so turns out on base camp if you
00:18:07.200 have a interruption in connectivity and there's some messages
00:18:13.400 being sent comments um while you're offline then you go back
00:18:20.080 online um what do you think you're going to
00:18:25.600 receive so this is a new message um that is sent while you're online
00:18:31.400 basically you only getting only getting the new one you're missing you're missing the messages that were posted
00:18:38.919 while you were offline and this is why because websockets are not giving you
00:18:44.080 delivery guarantees of course um but also action cable is
00:18:49.760 not it's it's a it's not improving on that let's
00:18:55.360 say so what was we basically discovered that there there
00:19:02.120 are in reality many problems with connectivity and with building really
00:19:07.679 kind of reliable real time features if you want to make them reliable they are much harder and it's not just
00:19:14.799 about um you think oh how many times am I going to go offline
00:19:20.720 online well uh if you look closely enough on real time scale you're actually going
00:19:27.320 offline pretty pretty Prett frequently um you know this is a glass half full um
00:19:34.120 right you look at it and you think or it's so uh solid then you look closely and it's
00:19:41.799 made of emptiness okay um well inside items well
00:19:48.960 realtime connectivity is a bit better but it's uh it's very
00:19:55.679 flaky uh and yeah so this is how the year ended we doubled uh the customers
00:20:02.440 and we reached $1 million consultant Revenue so we started thinking okay uh
00:20:08.320 as a consultant Revenue in cable kind of makes sense uh but as a
00:20:13.679 product still not there so we decided marketing is not enough and we're going to be building
00:20:19.880 more building more features for any cable and first thing we built is was
00:20:25.120 this uh reliable uh reliable web sockets inside any cable so now when you're
00:20:32.200 using any cable on the server and on the client so our extended client version uh
00:20:39.440 extended version of action cable client uh which is any cable client um then you
00:20:44.799 have exactly once deliver guarantees uh on web sockets and also what's important um if you have
00:20:51.880 persistent connections and you're redeploying your uh websocket server uh
00:20:57.080 any cable will restore those sessions and so you don't have to reconnect so this is a major uh kind of reliability
00:21:06.039 feature as well so we now recommend any cable not just as a performance boost but as a
00:21:12.799 kind of reliability boost uh for features so it's uh if you're serious
00:21:17.880 about realtime features uh consider using it we migrated uh off of redis so
00:21:25.320 you don't have to use it now uh we're using Nets originally we built it for
00:21:31.279 Flo um because they don't they cannot kind of use redus um but now you can use
00:21:38.080 uh embedded nuts instead of rers uh everywhere there there's some new new
00:21:43.760 use cases foring cable coming up every every year or so uh like this one this is
00:21:50.000 a uh electric vehicles charging stations so apparently there are many rails um
00:21:58.720 based EV uh companies EV charging companies around the world uh and maybe
00:22:08.279 one eeve company uh is using rails I mean Tesla I'm not sure I
00:22:15.919 just well uh and so we we basically somebody asked us to support the
00:22:21.400 protocol U that is uh that the EV station is using to send data to to well
00:22:28.240 in our case to rails application uh that is controlling operating uh operating
00:22:34.640 the station and we supported it and now we have U kind of the largest Malaysia's
00:22:40.559 um EV charging company using us and now the company from the UK is also reached
00:22:46.400 out this is an interesting kind of Market um a bunch of folks are building this it's a voice apps with uh where any
00:22:56.000 cable is extended and we have an an example an article of
00:23:01.279 how you can extend any cable with other modules on the goal side to do more
00:23:06.960 processing um if you want to kind of uh understand for example the content of
00:23:12.880 the of the speech um in t media streams or something like that and this is how we got um any
00:23:20.039 cable uh one of the probably the biggest of our customers doximity which is a
00:23:26.440 part of rails foundation and uh pretty huge company so they they use it for
00:23:32.080 this for this case uh any keepable now supports uh service and events uh
00:23:38.880 because well frankly because of LMS but because we had to use uh that but um
00:23:46.520 yeah you can now kind of create a uh Event Channel
00:23:53.080 um uh with any cable and um this is how last year year ended uh we again doubled
00:24:00.799 ARR and again had 1 million consulant Revenue which is kind of nice but this
00:24:06.960 year we decided okay uh let's do more um and you see uh we decided we're going to
00:24:13.640 go beyond Ruben rails uh we're going to do a universal pops up and we're going to do managing C so beyond Ruben rails
00:24:21.240 we um started with this kind of any cable for Server last JavaScript ver s
00:24:27.080 template yeah that's um that's what we tried um simplified for simplified pops
00:24:34.559 up we said okay um we're going to uh
00:24:40.159 offer a very simple architecture for any cable that is just a webset server uh in
00:24:47.600 pops up mode very simple uh very kind a framework agnostic um but it's a little
00:24:55.200 kind of less efficient and less performant than the original any cable
00:25:00.480 with RPC but for many apps they kind of um it's still better to have a
00:25:08.720 simpler architecture uh while still having much
00:25:14.399 better performance than action cable or any other uh stuff and we introduced Whispers which
00:25:22.679 are messages from client to client that uh Server doesn't care about for example
00:25:29.679 uh cursors live cursors is a um of course
00:25:35.440 your server doesn't care about them right so you just want to send them from client to client uh this was uh I
00:25:41.840 recorded it during our old hands uh I don't know why people uh could do this
00:25:48.240 but it's not SP up um H yeah I don't know maybe they're n
00:25:55.120 nervous for some reason so um okay managed to cable this is was this was
00:26:00.840 our final kind of big um I don't know dream for some fear for
00:26:07.880 somebody else um uh again this is just a we don't even
00:26:14.039 have a full-time engineer so how do we build a managed
00:26:19.159 service um we needed the most pragmatic the most efficient way of doing
00:26:26.520 this um what is think it
00:26:39.320 this is the stack we used to collide flag fly. v action policy and aore
00:26:48.880 um uh and we built a managed service in Alpha uh we are not building for it yet
00:26:56.640 uh but basically you can spin up um instances of any cable and use them in
00:27:02.919 your uh let's say stage in environment
00:27:09.399 yeah that's what uh we started experimenting with and um we introduced
00:27:16.159 uh Telemetry in open source there is an option to opt out of telemetry but um I
00:27:24.679 think it's very important for uh products like us uh that are open source and Commercial to still have Telemetry
00:27:31.799 in open source to understand uh for us it's important to understand how many big uh customers we have an open source
00:27:38.360 in relation to Pro and that's what we are seeing um so
00:27:44.080 this is where we are we're kind of on track to uh double again our AR and
00:27:49.399 we're seeing finally more new free Trails this year um hopefully because of
00:27:56.840 everything we've released um and uh we got a bunch of big companies
00:28:03.200 not all of them I can uh name yet but um yeah theim funnels are uh some of the
00:28:10.000 large rails uh applications and there are more we are working with them to
00:28:16.559 turn those stories into case studies um and yeah this this this is
00:28:23.640 what we have right we have we're solving a real problem uh for really big use cases and we know we noticed that new
00:28:31.399 use cases keep coming up uh and we solved this problem on the back hand
00:28:37.600 side but with like reliability and scalability and all of that but
00:28:44.039 um many things are missing and they I think the main thing and I wonder if you have ideas let me know uh after this you
00:28:52.240 know what you feel is missing well so far we think the number one is just the front and side of things
00:28:58.799 um we're planning this nice kind of UI collaboration UI uh key for different U
00:29:07.000 frontend technologist react nonreact uh makes it a bit harder but
00:29:13.200 yeah we'll see um because we we see people uh implementing those things like
00:29:20.120 presents cursors collaborative editing uh but they have to build it themselves
00:29:27.760 and we want to make it simple uh sort of out of the box as much as
00:29:33.559 possible um we still need to make any ke much simpler um I got to say it
00:29:40.559 is simplified already but you won't tell it by reading the docks
00:29:48.080 yet um just because uh the docks were an accumulation of a lot of um stuff that
00:29:54.080 was going on and kind of collected through over the years um so we're GNA simplify that and finally
00:30:02.000 yeah future transports uh that's what we are also thinking about we want to any people to kind encapsulate this new this
00:30:09.159 this those new things like web transport or whatever comes next um and my last remark would
00:30:18.440 be yeah about my own Journey if you remember I joined evil marins as a
00:30:24.760 account manager and I acted as a kind of like a
00:30:31.000 assistant manager at any cable just kind of somebody helping uh vvo and uh over
00:30:39.440 those years we became uh real co-founders here uh in Practical terms
00:30:45.760 it means we collaborate and contribute equally to this strategy and uh yeah it helped me a lot
00:30:54.120 to connect with many rails companies and with the Ruby Community which I'm
00:31:00.639 grateful for um and I was thinking what helped on what helped
00:31:07.919 most uh because if you think of this I had like a huge imposter syndrome
00:31:14.000 originally um and like let's say a lot of
00:31:19.279 insecurities um I realized what helped is uh like one person who uh trusted me
00:31:29.480 like nobody else completely yeah um
00:31:35.760 and this is vaa but also our company and Ruby
00:31:42.120 Community uh so I had so much strust and support in uh in this on this
00:31:50.240 journey well it wasn't like 100% of time um but but mostly mostly
00:31:58.600 um so this is how uh this is this is how we buildt it and I got I'm going to say
00:32:04.000 this was these are the foundations of aling keyable because there is a lot more
00:32:09.880 uh for us to do um and I'm super excited about this
00:32:16.559 um this is uh this is uh how you can find me please share uh any feedback uh
00:32:24.720 any suggestions for evil martians in cable and um the link on top is to um sign up
00:32:34.799 for the San Francisco Ruby Meetup that I'm running um well in the Bay Area and
00:32:41.519 there's one happening this week um so I hope to see some of you there yeah thank
00:32:58.240 yeah um I gotta say the manag service is not really requiring too much of our time yet um why
00:33:06.639 um we we're not seeing huge um use cases
00:33:11.760 on because it's an alpha and we say it's in Alpha uh and we say it everywhere
00:33:18.480 yeah um so uh what we doing we are using
00:33:24.240 flies API to spin up a new instance for every customer so it's like uh very uh
00:33:30.919 simple to manage if you think about it yeah but um yeah we're still U very much
00:33:39.360 um kind of much more in spending much more time on evil martians than on any
00:33:45.679 keable both of us and yeah that's that's how it is because cuz
00:33:51.760 yeah but hoping to dedicate more time to any K so
00:33:58.559 but yeah the team also helps though um yeah the team helps so we have somebody who's supporting Helm charts somebody
00:34:05.720 who's uh of course uh like we're making like a million doll Consulting Revenue this means this is not me and V are
00:34:13.359 doing consulting projects mostly um it's other teammates who know how to set up
00:34:19.520 scale any cable how to build with any cable so yeah it's a lot of people
00:34:25.240 involved yeah many many other people
00:34:32.480 all right yeah thank you
Explore all talks recorded at Rocky Mountain Ruby 2024
+22