Backends in Dart

Dart's popularity has surged in the past few years, as it's the language behind Flutter - Google's cross platform front end framework. That's now driving a notion of 'Full Stack Dart', where if you've spent time learning Dart for the front end, why not also use it for the back end. The Dart tool chain has some great features for back ends, such as the ability to create ahead of time (AOT) compiled binaries, or just in time (JIT) snapshots. But those features lead to some interesting trade offs around packaging, cold start times, observability and longer term performance optimization. This presentation will provide an overview of Dart as a back end language, then dive into those trade offs to look at the pros and cons of different choices.

What is the focus of your work these days?

I'm working on the stability, scalability and reliability of our platform for personal data stores that we call atSigns.

And what's the motivation behind your talk?

I'm going to be talking about Dart on the back end, which we use. We build the personal data stores using Dart. At the moment, each of those runs as an ahead of time (AOT) compiled binary. But AOT compilation, although it gives us a lightweight, fast starting binary, robs us of the ability to observe what's going on inside of those personal data stores in terms of memory management. We don't actually see what's happening with the data because that's all encrypted. So I'm going to be talking a lot about snapshots, which is a cool feature of Dart, where it's kind of the best of both worlds. So you get to have Just in Time (JIT) compiler optimizations from the VM, but the snapshot means that you get a warm start rather than a cold start. It gets over that cold start problem that we're all familiar with from running things on Java, and so I think it's a really cool feature of Dart, one that's sort of underappreciated. I hope to raise awareness of Dart as a programming language and especially some of the things that can be done with it on the back end.

How would you describe the persona and level of the target audience for your session?

I think it's pretty wide. There'll be folks out there working with Dart already, maybe doing stuff in Flutter who want to see what they can do with Dart on the back end. There'll also be people using Java at the moment who might be interested in a similar but different virtual machine language; and then I think there will be startups doing observability, monitoring, security and things like feature flags where they've got an interest in Dart as a language especially now that it’s hit the top 20 in the popularity, and want to learn more about what's going on with it, how people are using it, and what the opportunities are for their platforms to support it.

Is there anything in particular that you would like the folks that go to see your session to walk away with after seeing your presentation?

I'd like them to try it out if they've not tried Dart before, and if they're a little more into Dart, I'd like them to try out things like snapshot for some backend services and see if that gives them the best of both worlds of quick starting applications that have a full observability tool suite associated with them.


Speaker

Chris Swan

Engineer @atsigncompan, Previously Fellow @DXCTechnology, CTO & Director of R&D roles @CohesiveNetworks @UBS @Capital SCF and @Credit Suisse

Chris Swan is an Engineer at Atsign, building the atPlatform, a technology that is putting people in control of their data and removing the frictions and surveillance associated with today’s Internet. He was previously a Fellow at DXC Technology where he held various CTO roles. Before that he held CTO and Director of R&D roles at Cohesive Networks, UBS, Capital SCF and Credit Suisse, where he worked on app servers, compute grids, security, mobile, cloud, networking and containers. Chris co-hosts the Tech Debt Burndown Podcast and is a Dart Google Developer Expert (GDE). 

     

      Read more
      Find Chris Swan at:

      Date

      Monday Oct 24 / 10:35AM PDT ( 50 minutes )

      Location

      Bayview

      Topics

      Backends Dart Full Stack Observability Performance Optimization Java Data Languages

      Share

      From the same track

      Session Backends

      24/7 State Replication

      Monday Oct 24 / 11:50AM PDT

      Systems that operate non-stop, 24/7 are standard in many consumer-facing industries. Often, but definitely not always, these systems do not have aggressive SLAs nor high availability needs to the degree that some financial systems demand. But that is changing.

      Speaker image - Todd Montgomery
      Todd Montgomery

      Ex Researcher @Nasa, Engineering Fellow @ Adaptive Financial Consulting and a High Performance Distributed Systems Whisperer

      Session Backends

      Leveraging Determinism

      Monday Oct 24 / 05:25PM PDT

      Determinism is a very powerful concept when paired with fast business logic. We discuss both intuitive and not-so-obvious architecture choices that can be made to dramatically scale and simplify systems with these properties.

      Speaker image - Frank Yu
      Frank Yu

      Senior Engineering Manager @Coinbase, previously Principal Engineer and Director @FairX

      Session

      Panel: Building Modern Backends

      Monday Oct 24 / 02:55PM PDT

      Join today’s speakers in an open panel conversation about modern backends and the languages used to build them. Our panelists today come from backgrounds focused on high performance, legacy modernization, and low latency. The speakers span a variety of software languages and industries.

      Speaker image - Chris Swan
      Chris Swan

      Engineer @atsigncompan, Previously Fellow @DXCTechnology, CTO & Director of R&D roles @CohesiveNetworks @UBS @Capital SCF and @Credit Suisse

      Speaker image - Frank Yu
      Frank Yu

      Senior Engineering Manager @Coinbase, previously Principal Engineer and Director @FairX

      Speaker image - Juncheng Yang
      Juncheng Yang

      Ph.D. student @CarnegieMellon, Focus on Efficiency and Performance, Previously @Twitter & @Cloudflare, Facebook Fellow

      Session Microservices

      Data Mesh: Are We There Yet?

      Monday Oct 24 / 04:10PM PDT

      Standing at an inflection point is a magical experience. It’s where we look at what has come before, learn from it, and choose a new path. Data Mesh has motivated many organizations to stand at an inflection point of their approach to data.

      Speaker image - Zhamak Dehghani
      Zhamak Dehghani

      CEO and Founder @Stealth Startup, Data Mesh Founder, Author, Speaker

      Session

      Ubiquitous Caching: A Journey of Building Efficient Distributed and In-Process Caches at Twitter

      Monday Oct 24 / 01:40PM PDT

      Modern web applications widely deploy cache across the stack to speed up data access and improve throughput. In this talk, I will discuss three trends in hardware, workload, and cache usage that shape the design of modern caches.

      Speaker image - Juncheng Yang
      Juncheng Yang

      Ph.D. student @CarnegieMellon, Focus on Efficiency and Performance, Previously @Twitter & @Cloudflare, Facebook Fellow