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 You’ll Learn:

1. Hear about using Dart for the backend services.

2. Learn about Dart snapshots, what they are and what they are good for.

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 @atsigncompany

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

      Thursday Dec 1 / 09:00AM PST ( 50 minutes )

      Topics

      Backends Dart Full-Stack Observability Performance Optimization Java Data Languages

      Share

      From the same track

      Session Backends

      24/7 State Replication

      Thursday Dec 1 / 10:10AM PST

      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.

      Todd Montgomery

      Ex-NASA Researcher and High Performance Distributed Systems Whisperer

      Session Backends

      Leveraging Determinism

      Thursday Dec 1 / 12:30PM PST

      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.

      Frank Yu

      Senior Engineering Manager @Coinbase

      Session

      Data Mesh: Are We There Yet?

      Thursday Dec 1 / 01:40PM PST

      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.

      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

      Thursday Dec 1 / 11:20AM PST

      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.

      Juncheng Yang

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